|
TensorRT 8.2.1
|
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 | |
| 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 row-major 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 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}.
|
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 |
Only index 0 (data input) is valid, unless explicit-quantization mode is enabled. In explicit-quantization mode, input with index 1 is the kernel-weights tensor, if present. The kernel-weights tensor must be a build-time constant (computable at build-time via constant-folding) and an output of a dequantize layer. If input index 1 is used then the kernel-weights parameter must be set to empty Weights.
The indices are as follows:
If this function is called with the value 1, then the function getNbInputs() changes from returning 1 to 2.
|
inlinenoexcept |
Set the kernel weights, given as a KxC matrix in row-major 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].