|
| TileGradientOp (const OperatorDef &operator_def, Workspace *ws) |
|
bool | RunOnDevice () override |
|
| Operator (const OperatorDef &operator_def, Workspace *ws) |
|
const Tensor< Context > & | Input (int idx) |
|
Tensor< Context > * | Output (int idx) |
|
void | WaitEvent (const Event &ev, int stream_id=-1) final |
|
void | WaitEvents (const std::vector< const Event * > &events, int stream_id=-1) final |
|
bool | Run (int stream_id=0) final |
|
bool | RunAsync (int stream_id=0) final |
|
bool | IsStreamFree (int stream_id) const override |
|
bool | HasAsyncPart () const override |
|
bool | SupportsAsyncScheduling () const override |
|
const Context * | getContext () const |
|
| OperatorBase (const OperatorDef &operator_def, Workspace *ws) |
|
bool | HasArgument (const string &name) const |
| Checks if the operator has an argument of the given name.
|
|
template<typename T > |
T | GetSingleArgument (const string &name, const T &default_value) const |
|
template<typename T > |
bool | HasSingleArgumentOfType (const string &name) const |
|
template<typename T > |
vector< T > | GetRepeatedArgument (const string &name, const vector< T > &default_value={}) const |
|
template<typename T > |
const T & | Input (int idx) |
|
template<typename T > |
T * | Output (int idx) |
|
template<typename T > |
T * | Output (int idx, T *allocated) |
|
const Blob & | InputBlob (int idx) |
|
Blob * | OutputBlob (int idx) |
|
template<typename T > |
bool | InputIsType (int idx) |
|
template<typename T > |
bool | OutputIsType (int idx) |
|
int | InputSize () const |
|
int | OutputSize () const |
|
const vector< const Blob * > & | Inputs () const |
|
const vector< Blob * > & | Outputs () |
|
vector< TensorShape > | InputTensorShapes () |
|
void | Wait (const OperatorBase &other, int stream_id=-1) |
|
virtual void | Finish () |
|
virtual void | AddRelatedBlobInfo (EnforceNotMet *err) |
|
const OperatorDef & | debug_def () const |
|
void | set_debug_def (const std::shared_ptr< const OperatorDef > &operator_def) |
|
bool | has_debug_def () const |
|
void | RecordLastFailedOpNetPosition () |
|
int | net_position () const |
|
void | set_net_position (int idx) |
|
const DeviceOption & | device_option () const |
|
const Event & | event () const |
|
Event & | event () |
|
void | ResetEvent () |
|
void | DisableEvent () |
|
bool | IsEventDisabled () const |
|
const std::string & | type () const |
|
void | annotate_engine (const std::string &engine) |
|
const std::string & | engine () const |
|
const Observer * | AttachObserver (std::unique_ptr< Observer > observer) |
|
std::unique_ptr< Observer > | DetachObserver (const Observer *observer_ptr) |
| Returns a unique_ptr to the removed observer. More...
|
|
virtual size_t | NumObservers () |
|
void | StartAllObservers () |
|
void | StopAllObservers () |
|
template<typename T, class Context>
class caffe2::TileGradientOp< T, Context >
Definition at line 130 of file tile_op.h.
template<typename T , class Context >
How this works: Imagine a 2D tensor (matrix) of size 3x10, tiled 2 times along axis 1 (column). This is equivalent to multiplying by a vector of 1s transposed. The gradient of this is all 1s in the shape of the input matrix (call it X). So the output gradient should be the matrix multipication result of input gradient (gradient of tiled tensor output) and X.
Implements caffe2::Operator< Context >.
Definition at line 139 of file tile_op.h.