#ifndef CAFFE2_OPERATORS_LOSS_OP_H_ #define CAFFE2_OPERATORS_LOSS_OP_H_ #include "caffe2/core/context.h" #include "caffe2/core/logging.h" #include "caffe2/core/operator.h" #include "caffe2/operators/reduction_ops.h" #include "caffe2/operators/utility_ops.h" #include "caffe2/utils/math.h" namespace caffe2 { // AveragedLoss takes in the input and produces the output loss value as // the average of the input. template class AveragedLoss final : public SumElementsOp { public: AveragedLoss(const OperatorDef& operator_def, Workspace* ws) : SumElementsOp(operator_def, ws, true) {} ~AveragedLoss() {} }; template class AveragedLossGradient final : public SumElementsGradientOp { public: AveragedLossGradient(const OperatorDef& operator_def, Workspace* ws) : SumElementsGradientOp(operator_def, ws, true) {} ~AveragedLossGradient() {} }; } // namespace caffe2 #endif // CAFFE2_OPERATORS_LOSS_OP_H_