Caffe2 - C++ API
A deep learning, cross platform ML framework
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
caffe2::GradientMakerBase Class Reference
Inheritance diagram for caffe2::GradientMakerBase:
caffe2::GradientNotImplementedYet caffe2::NoGradient caffe2::ThrowInTheTowelIfGradientIsCalled

Public Member Functions

 GradientMakerBase (const OperatorDef &def, const vector< GradientWrapper > &g_output)
 
virtual bool CopyDeviceOption () const
 
virtual bool CopyEngine () const
 
virtual bool CopyArguments () const
 
virtual GradientOpsMeta Get ()
 Returns the gradient ops meta. More...
 
const OperatorDef & Def () const
 

Static Public Member Functions

static CaffeMap< string, string > MatchGradsToParams (const OperatorDef &op)
 Returns map that returns the parameters that the gradients are for.
 

Protected Member Functions

virtual vector< OperatorDef > GetGradientDefs ()
 
string I (const int i)
 
string O (const int i)
 
string GI (const int i)
 
string GI_I (const int i)
 
string GI_V (const int i)
 
string GO (const int i)
 
string GO_I (const int i)
 
string GO_V (const int i)
 
const GradientWrapperGradOut (int i)
 
void SetDense (const int i, const string &name)
 
void SetSparse (const int i, const string &indices, const string &values)
 

Static Protected Member Functions

template<class... Args>
static vector< OperatorDef > SingleGradientDef (const Args &... args)
 a helper function to allow one to create one single operator def, which is usually the case for many simple operators.
 

Protected Attributes

const OperatorDef & def_
 
const vector< GradientWrapper > & g_output_
 
vector< GradientWrapperg_input_
 

Detailed Description

Definition at line 46 of file operator_gradient.h.

Member Function Documentation

◆ Get()

virtual GradientOpsMeta caffe2::GradientMakerBase::Get ( )
inlinevirtual

Returns the gradient ops meta.

If your gradient op generator only use standard input and output manipulations, you can simply implement GetGradientDefs() that returns vector<OperatorDef>. In that, you can call GI, GI_V and GI_I that will automatically create the gradient registration for you.

If you need to do custom gradient name registration, overload this function directly.

Reimplemented in caffe2::GradientNotImplementedYet, and caffe2::ThrowInTheTowelIfGradientIsCalled.

Definition at line 74 of file operator_gradient.h.


The documentation for this class was generated from the following file: