Caffe2 - C++ API
A deep learning, cross platform ML framework
Public Member Functions
caffe2::ThrowInTheTowelIfGradientIsCalled Struct Reference

A helper class to indicate that the operator should have no gradient. More...

#include <operator_gradient.h>

Inheritance diagram for caffe2::ThrowInTheTowelIfGradientIsCalled:
caffe2::GradientMakerBase

Public Member Functions

GradientOpsMeta Get () override
 Returns the gradient ops meta. More...
 
- Public Member Functions inherited from caffe2::GradientMakerBase
 GradientMakerBase (const OperatorDef &def, const vector< GradientWrapper > &g_output)
 
virtual bool CopyDeviceOption () const
 
virtual bool CopyEngine () const
 
virtual bool CopyArguments () const
 
const OperatorDef & Def () const
 

Additional Inherited Members

- Static Public Member Functions inherited from caffe2::GradientMakerBase
static CaffeMap< string, string > MatchGradsToParams (const OperatorDef &op)
 Returns map that returns the parameters that the gradients are for.
 
- Protected Member Functions inherited from caffe2::GradientMakerBase
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 inherited from caffe2::GradientMakerBase
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 inherited from caffe2::GradientMakerBase
const OperatorDef & def_
 
const vector< GradientWrapper > & g_output_
 
vector< GradientWrapperg_input_
 

Detailed Description

A helper class to indicate that the operator should have no gradient.

This is used when the operator definition is designed to not have a gradient. Calling a gradient on this operator def will cause Caffe2 to quit.

Definition at line 257 of file operator_gradient.h.

Member Function Documentation

◆ Get()

GradientOpsMeta caffe2::ThrowInTheTowelIfGradientIsCalled::Get ( )
inlineoverridevirtual

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 from caffe2::GradientMakerBase.

Definition at line 259 of file operator_gradient.h.


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