ONE - On-device Neural Engine
|
2D Transposed Convolution More...
#include <Nodes.h>
Public Member Functions | |
Node * | ifm (void) const |
void | ifm (Node *node) |
Node * | ker (void) const |
void | ker (Node *node) |
const Padding2D * | pad (void) const |
Padding2D * | pad (void) |
const Stride< 2 > * | stride (void) const |
Stride< 2 > * | stride (void) |
Public Member Functions inherited from loco::CanonicalNodeDef< CanonicalOpcode::TransposedConv2D, FixedArity< 2 >::Mixin > | |
virtual | ~CanonicalNodeDef ()=default |
uint32_t | opnum (void) const final |
CanonicalOpcode | opcode (void) const final |
Public Member Functions inherited from loco::CanonicalNode | |
virtual | ~CanonicalNode ()=default |
const Dialect * | dialect (void) const final |
Return "Dialect" identifier that this node belongs to. | |
template<typename T > | |
T | accept (CanonicalNodeVisitorBase< T > *) const |
template<typename T > | |
T | accept (CanonicalNodeMutableVisitorBase< T > *) |
Public Member Functions inherited from loco::Node | |
Node ()=default | |
Node (const Node &)=delete | |
Node (Node &&)=delete | |
virtual | ~Node () |
Graph * | graph (void) |
const Graph * | graph (void) const |
virtual uint32_t | arity (void) const =0 |
Return the number of arguments. | |
virtual Node * | arg (uint32_t N) const =0 |
Access N-th argument node. | |
virtual void | drop (void)=0 |
Drop all the reference of arguments. | |
Public Member Functions inherited from loco::AnnotatedItem< NodeAnnotation > | |
AnnotatedItem ()=default | |
virtual | ~AnnotatedItem ()=default |
const T * | annot (void) const |
Retrieve a stored annotation of type T. | |
void | annot (std::unique_ptr< T > &&p) |
Attach or remove a new annotation of type T. | |
2D Transposed Convolution
For loco canonical TransposedConv2D, 'input' and 'output' mean actual input and output node of TransposedConv2D node. Be careful that some other frameworks may use opposite sense, especially TensorFlow which is inspired by backpropagation of convolution. For example, loco::TransposedConv2D::ifm() means actual input feature map node that is sourced into TransposedConv2D.
TransposedConv2D::ker() should be a node of Filter domain. Following is what each FilterAxis means as a kernel of TransposedConv2D:
Tight fit rule
TransposedConv2D have no information about its output shape. Instead, it always satisfy following 'tight fit' rule for horizontal and vertical dimension:
O = S * ( I - 1 ) + F - P
where O: output size S: stride I: input size F: effective kernal(filter) size P: whole pad size (= front + rear pad)
With this, output shape is uniquely determined by all inputs and attributes.
|
inline |
|
inline |
Definition at line 690 of file Nodes.h.
Referenced by exo::TransposedConv2DConverter::convert(), and mir2loco::Transformer::visit().
|
inline |
|
inline |
Definition at line 693 of file Nodes.h.
Referenced by exo::TransposedConv2DConverter::convert(), and TransposedConv2DLayer::operator()().
|
inline |
|
inline |
Definition at line 697 of file Nodes.h.
Referenced by exo::TransposedConv2DConverter::convert().
|
inline |
|
inline |
Definition at line 701 of file Nodes.h.
Referenced by exo::TransposedConv2DConverter::convert().