TensorRT
7.1.3.0

A fully connected layer in a network definition. This layer expects an input tensor of three or more nonbatch 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 rowmajor 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...  
void  setInput (int index, ITensor &tensor) _TENSORRT_OVERRIDE=0 
Append or replace an input of this layer with a specific tensor. 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...  
virtual void  setPrecision (DataType dataType)=0 
Set the computational precision of this layer. More...  
virtual DataType  getPrecision () const =0 
get the computational precision of this layer More...  
virtual bool  precisionIsSet () const =0 
whether the computational precision has been set for this layer More...  
virtual void  resetPrecision ()=0 
reset the computational precision for this layer More...  
virtual void  setOutputType (int index, DataType dataType)=0 
Set the output type of this layer. More...  
virtual DataType  getOutputType (int index) const =0 
get the output type of this layer More...  
virtual bool  outputTypeIsSet (int index) const =0 
whether the output type has been set for this layer More...  
virtual void  resetOutputType (int index)=0 
reset the output type for this layer More...  
A fully connected layer in a network definition. This layer expects an input tensor of three or more nonbatch 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 
Append or replace an input of this layer with a specific tensor.
index  the index of the input to modify. 
tensor  the new input tensor 
For a IFullyConnectedLayer, only index 0 is valid unless explicit precision mode is enabled. With explicit precision mode, values 01 are valid where value 1 overrides kernel weights. Kernel weights tensor (computed at buildtime) must be an output of dequantize scale layer (i.e. a scale layer with int8 input and float output) in explicit precision network. Conversely, this input tensor can be overridden via appropriate set call. The indices are as follows:
Index  Description 0  The input activation tensor. 1  The kernel weights tensor (a constant tensor).
If this function is called with a value greater than 0, then the function getNbInputs() changes
Implements nvinfer1::ILayer.

pure virtual 
Set the kernel weights, given as a KxC
matrix in rowmajor order.

pure virtual 
Set the number of output channels K
from the fully connected layer.
If executing this layer on DLA, number of output channels must in the range [1,8192].