#pragma once #include "caffe2/core/context.h" #include "caffe2/core/logging.h" #include "caffe2/core/operator.h" #include "caffe2/utils/math.h" namespace caffe2 { // support multiple batches of sessions template class PairWiseLossOp final : public Operator { public: USE_SIMPLE_CTOR_DTOR(PairWiseLossOp); USE_OPERATOR_CONTEXT_FUNCTIONS; bool RunOnDevice() override; private: INPUT_TAGS(XVALUE, LABEL, LENGTHS); OUTPUT_TAGS(YVALUE); }; template class PairWiseLossGradientOp final : public Operator { public: USE_SIMPLE_CTOR_DTOR(PairWiseLossGradientOp); USE_OPERATOR_CONTEXT_FUNCTIONS; bool RunOnDevice() override; private: INPUT_TAGS(XVALUE, LABEL, DYVALUE, LENGTHS); OUTPUT_TAGS(DXVALUE); }; } // namespace caffe2