#ifndef CAFFE2_OPERATORS_STOP_GRADIENT_H_
|
#define CAFFE2_OPERATORS_STOP_GRADIENT_H_
|
|
#include "caffe2/core/operator.h"
|
|
namespace caffe2 {
|
|
template <class Context>
|
class StopGradientOp : public Operator<Context> {
|
public:
|
USE_SIMPLE_CTOR_DTOR(StopGradientOp)
|
USE_OPERATOR_CONTEXT_FUNCTIONS;
|
bool RunOnDevice() override {
|
const auto& in = Input(0);
|
auto* out = Output(0);
|
if (out != &in) {
|
out->CopyFrom(in, true /*async*/);
|
}
|
return true;
|
}
|
};
|
|
} // namespace caffe2
|
|
#endif // CAFFE2_OPERATORS_STOP_GRADIENT_H_
|