TensorRT
|
A fully connected layer in a network definition. This layer expects an input tensor of three or more non-batch dimensions. The input is automatically reshaped into an MxV
tensor X
, where V
is a product of the last three dimensions and M
is a product of the remaining dimensions (where the product over 0 dimensions is defined as 1). For example:
More...
#include <NvInfer.h>
Public Member Functions | |
virtual void | setNbOutputChannels (int nbOutputs)=0 |
Set the number of output channels K from the fully connected layer. More... | |
virtual int | getNbOutputChannels () const =0 |
Get the number of output channels K from the fully connected layer. More... | |
virtual void | setKernelWeights (Weights weights)=0 |
Set the kernel weights, given as a KxC matrix in row-major order. More... | |
virtual Weights | getKernelWeights () const =0 |
Get the kernel weights. More... | |
virtual void | setBiasWeights (Weights weights)=0 |
Set the bias weights. More... | |
virtual Weights | getBiasWeights () const =0 |
Get the bias weights. More... | |
Public Member Functions inherited from nvinfer1::ILayer | |
virtual LayerType | getType () const =0 |
Return the type of a layer. More... | |
virtual void | setName (const char *name)=0 |
Set the name of a layer. More... | |
virtual const char * | getName () const =0 |
Return the name of a layer. More... | |
virtual int | getNbInputs () const =0 |
Get the number of inputs of a layer. | |
virtual ITensor * | getInput (int index) const =0 |
Get the layer input corresponding to the given index. More... | |
virtual int | getNbOutputs () const =0 |
Get the number of outputs of a layer. | |
virtual ITensor * | getOutput (int index) const =0 |
Get the layer output corresponding to the given index. More... | |
A fully connected layer in a network definition. This layer expects an input tensor of three or more non-batch dimensions. The input is automatically reshaped into an MxV
tensor X
, where V
is a product of the last three dimensions and M
is a product of the remaining dimensions (where the product over 0 dimensions is defined as 1). For example:
{C, H, W}
, then the tensor is reshaped into {1, C*H*W}
.{P, C, H, W}
, then the tensor is reshaped into {P, C*H*W}
.The layer then performs the following operation:
Where X
is the MxV
tensor defined above, W
is the KxV
weight tensor of the layer, and bias
is a row vector size K
that is broadcasted to MxK
. K
is the number of output channels, and configurable via setNbOutputChannels(). If bias
is not specified, it is implicitly 0
.
The MxK
result Y
is then reshaped such that the last three dimensions are {K, 1, 1}
and the remaining dimensions match the dimensions of the input tensor. For example:
{C, H, W}
, then the output tensor will have shape {K, 1, 1}
.{P, C, H, W}
, then the output tensor will have shape {P, K, 1, 1}
.
|
pure virtual |
Get the bias weights.
|
pure virtual |
Get the kernel weights.
|
pure virtual |
Get the number of output channels K
from the fully connected layer.
|
pure virtual |
Set the bias weights.
Bias is optional. To omit bias, set the count value in the weights structure to zero.
|
pure virtual |
Set the kernel weights, given as a KxC
matrix in row-major order.
|
pure virtual |
Set the number of output channels K
from the fully connected layer.