TensorRT
8.0.2

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  
void  setNbOutputChannels (int32_t nbOutputs) noexcept 
Set the number of output channels K from the fully connected layer. More...  
int32_t  getNbOutputChannels () const noexcept 
Get the number of output channels K from the fully connected layer. More...  
void  setKernelWeights (Weights weights) noexcept 
Set the kernel weights, given as a KxC matrix in rowmajor order. More...  
Weights  getKernelWeights () const noexcept 
Get the kernel weights. More...  
void  setBiasWeights (Weights weights) noexcept 
Set the bias weights. More...  
Weights  getBiasWeights () const noexcept 
Get the bias weights. More...  
void  setInput (int32_t index, ITensor &tensor) noexcept 
Append or replace an input of this layer with a specific tensor. More...  
Public Member Functions inherited from nvinfer1::ILayer  
LayerType  getType () const noexcept 
Return the type of a layer. More...  
void  setName (const char *name) noexcept 
Set the name of a layer. More...  
const char *  getName () const noexcept 
Return the name of a layer. More...  
int32_t  getNbInputs () const noexcept 
Get the number of inputs of a layer.  
ITensor *  getInput (int32_t index) const noexcept 
Get the layer input corresponding to the given index. More...  
int32_t  getNbOutputs () const noexcept 
Get the number of outputs of a layer.  
ITensor *  getOutput (int32_t index) const noexcept 
Get the layer output corresponding to the given index. More...  
void  setInput (int32_t index, ITensor &tensor) noexcept 
Replace an input of this layer with a specific tensor. More...  
void  setPrecision (DataType dataType) noexcept 
Set the computational precision of this layer. More...  
DataType  getPrecision () const noexcept 
get the computational precision of this layer More...  
bool  precisionIsSet () const noexcept 
whether the computational precision has been set for this layer More...  
void  resetPrecision () noexcept 
reset the computational precision for this layer More...  
void  setOutputType (int32_t index, DataType dataType) noexcept 
Set the output type of this layer. More...  
DataType  getOutputType (int32_t index) const noexcept 
get the output type of this layer More...  
bool  outputTypeIsSet (int32_t index) const noexcept 
whether the output type has been set for this layer More...  
void  resetOutputType (int32_t index) noexcept 
reset the output type for this layer More...  
Protected Attributes  
apiv::VFullyConnectedLayer *  mImpl 
Protected Attributes inherited from nvinfer1::ILayer  
apiv::VLayer *  mLayer 
Additional Inherited Members  
Protected Member Functions inherited from nvinfer1::INoCopy  
INoCopy (const INoCopy &other)=delete  
INoCopy &  operator= (const INoCopy &other)=delete 
INoCopy (INoCopy &&other)=delete  
INoCopy &  operator= (INoCopy &&other)=delete 
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}
.

inlinenoexcept 
Get the bias weights.

inlinenoexcept 
Get the kernel weights.

inlinenoexcept 
Get the number of output channels K
from the fully connected layer.

inlinenoexcept 
Set the bias weights.
Bias is optional. To omit bias, set the count value in the weights structure to zero.

inlinenoexcept 
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:
If this function is called with a value greater than 0, then the function getNbInputs() changes

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

inlinenoexcept 
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].