TensorRT 10.8.0
nvinfer1::ILayer 类参考

网络定义中所有层类的基类。 更多...

#include <NvInfer.h>

nvinfer1::ILayer 的继承关系图
nvinfer1::INoCopy nvinfer1::IActivationLayer nvinfer1::IAssertionLayer nvinfer1::ICastLayer nvinfer1::IConcatenationLayer nvinfer1::IConstantLayer nvinfer1::IConvolutionLayer nvinfer1::ICumulativeLayer nvinfer1::IDeconvolutionLayer nvinfer1::IDequantizeLayer nvinfer1::IDynamicQuantizeLayer nvinfer1::IEinsumLayer nvinfer1::IElementWiseLayer nvinfer1::IFillLayer nvinfer1::IGatherLayer nvinfer1::IGridSampleLayer nvinfer1::IIdentityLayer nvinfer1::IIfConditionalBoundaryLayer nvinfer1::ILRNLayer nvinfer1::ILoopBoundaryLayer nvinfer1::IMatrixMultiplyLayer nvinfer1::INMSLayer nvinfer1::INonZeroLayer nvinfer1::INormalizationLayer nvinfer1::IOneHotLayer nvinfer1::IPaddingLayer nvinfer1::IParametricReLULayer nvinfer1::IPluginV2Layer nvinfer1::IPluginV3Layer nvinfer1::IPoolingLayer nvinfer1::IQuantizeLayer nvinfer1::IRaggedSoftMaxLayer nvinfer1::IReduceLayer nvinfer1::IResizeLayer nvinfer1::IReverseSequenceLayer nvinfer1::IScaleLayer nvinfer1::IScatterLayer nvinfer1::ISelectLayer nvinfer1::IShapeLayer nvinfer1::IShuffleLayer nvinfer1::ISliceLayer nvinfer1::ISoftMaxLayer nvinfer1::ISqueezeLayer nvinfer1::ITopKLayer nvinfer1::IUnaryLayer nvinfer1::IUnsqueezeLayer

公共成员函数

LayerType getType () const noexcept
 返回层的类型。 更多...
 
void setName (char const *name) noexcept
 设置层的名称。 更多...
 
char const * getName () const noexcept
 返回层的名称。 更多...
 
int32_t getNbInputs () const noexcept
 获取层的输入数量。 更多...
 
ITensorgetInput (int32_t index) const noexcept
 获取与给定索引对应的层输入。 更多...
 
int32_t getNbOutputs () const noexcept
 获取层的输出数量。 更多...
 
ITensorgetOutput (int32_t index) const noexcept
 获取与给定索引对应的层输出。 更多...
 
void setInput (int32_t index, ITensor &tensor) noexcept
 用特定的张量替换此层的输入。 更多...
 
void setPrecision (DataType dataType) noexcept
 在弱类型网络中设置此层的首选或必需的计算精度。 更多...
 
DataType getPrecision () const noexcept
 获取此层的计算精度 更多...
 
bool precisionIsSet () const noexcept
 是否已为此层设置计算精度 更多...
 
void resetPrecision () noexcept
 重置此层的计算精度 更多...
 
void setOutputType (int32_t index, DataType dataType) noexcept
 在弱类型网络中设置此层的输出类型。 更多...
 
DataType getOutputType (int32_t index) const noexcept
 获取此层的输出类型 更多...
 
bool outputTypeIsSet (int32_t index) const noexcept
 是否已为此层设置输出类型 更多...
 
void resetOutputType (int32_t index) noexcept
 重置此层的输出类型 更多...
 
void setMetadata (char const *metadata) noexcept
 为此层设置元数据。 更多...
 
char const * getMetadata () const noexcept
 获取层的元数据。 更多...
 

保护成员函数

virtual ~ILayer () noexcept=default
 
- 继承自 nvinfer1::INoCopy 的保护成员函数
 INoCopy ()=default
 
virtual ~INoCopy ()=default
 
 INoCopy (INoCopy const &other)=delete
 
INoCopyoperator= (INoCopy const &other)=delete
 
 INoCopy (INoCopy &&other)=delete
 
INoCopyoperator= (INoCopy &&other)=delete
 

保护属性

apiv::VLayer * mLayer
 

详细描述

网络定义中所有层类的基类。

警告
不要从此类继承,因为这样做会破坏 API 和 ABI 的向前兼容性。

构造函数 & 析构函数文档

◆ ~ILayer()

virtual nvinfer1::ILayer::~ILayer ( )
protectedvirtualdefaultnoexcept

成员函数文档

◆ getInput()

ITensor * nvinfer1::ILayer::getInput ( int32_t  index) const
inlinenoexcept

获取与给定索引对应的层输入。

参数
index输入张量的索引。
返回值
输入张量,如果索引超出范围或张量是可选的 (ISliceLayer),则返回 nullptr。

◆ getMetadata()

char const * nvinfer1::ILayer::getMetadata ( ) const
inlinenoexcept

获取层的元数据。

返回值
元数据为 null 结尾的 C 风格字符串。如果未调用 setMetadata(),则将返回空字符串 "" 作为默认值。
另请参阅
setMetadata()

◆ getName()

char const * nvinfer1::ILayer::getName ( ) const
inlinenoexcept

返回层的名称。

另请参阅
setName()

◆ getNbInputs()

int32_t nvinfer1::ILayer::getNbInputs ( ) const
inlinenoexcept

获取层的输入数量。

◆ getNbOutputs()

int32_t nvinfer1::ILayer::getNbOutputs ( ) const
inlinenoexcept

获取层的输出数量。

◆ getOutput()

ITensor * nvinfer1::ILayer::getOutput ( int32_t  index) const
inlinenoexcept

获取与给定索引对应的层输出。

返回值
索引的输出张量,如果索引超出范围或张量是可选的,则返回 nullptr。

◆ getOutputType()

DataType nvinfer1::ILayer::getOutputType ( int32_t  index) const
inlinenoexcept

获取此层的输出类型

参数
index输出的索引
返回值
输出精度。如果未设置精度,则将返回 DataType::kFLOAT,除非输出类型本身是 DataType::kINT32
另请参阅
getOutputType() outputTypeIsSet() resetOutputType()

◆ getPrecision()

DataType nvinfer1::ILayer::getPrecision ( ) const
inlinenoexcept

获取此层的计算精度

返回值
计算精度
另请参阅
setPrecision() precisionIsSet() resetPrecision()

◆ getType()

LayerType nvinfer1::ILayer::getType ( ) const
inlinenoexcept

返回层的类型。

另请参阅
LayerType

◆ outputTypeIsSet()

bool nvinfer1::ILayer::outputTypeIsSet ( int32_t  index) const
inlinenoexcept

是否已为此层设置输出类型

参数
index输出的索引
返回值
是否已显式设置输出类型
另请参阅
setOutputType() getOutputType() resetOutputType()

◆ precisionIsSet()

bool nvinfer1::ILayer::precisionIsSet ( ) const
inlinenoexcept

是否已为此层设置计算精度

返回值
是否已显式设置计算精度
另请参阅
setPrecision() getPrecision() resetPrecision()

◆ resetOutputType()

void nvinfer1::ILayer::resetOutputType ( int32_t  index)
inlinenoexcept

重置此层的输出类型

参数
index输出的索引
另请参阅
setOutputType() getOutputType() outputTypeIsSet()

◆ resetPrecision()

void nvinfer1::ILayer::resetPrecision ( )
inlinenoexcept

重置此层的计算精度

另请参阅
setPrecision() getPrecision() precisionIsSet()

◆ setInput()

void nvinfer1::ILayer::setInput ( int32_t  index,
ITensor tensor 
)
inlinenoexcept

用特定的张量替换此层的输入。

参数
index要修改的输入的索引。
tensor新的输入张量

除了 IFillLayer, ILoopOutputLayer, INMSLayer, IResizeLayer, IShuffleLayer, 和 ISliceLayer 之外,此方法无法更改层的输入数量。 index 参数必须小于 getNbInputs() 的值。

有关具有特殊行为的层的 setInput() 重载的注释,请参阅。

◆ setMetadata()

void nvinfer1::ILayer::setMetadata ( char const *  metadata)
inlinenoexcept

为此层设置元数据。

元数据在 IEngineInspector 使用设置为 kDETAILED 的 ProfilingVerbosity 返回的 JSON 中发出。

参数
metadata每层元数据。
警告
字符串名称必须以 null 结尾,并且最多为 4096 字节,包括终止符。
另请参阅
getMetadata()
getLayerInformation()

◆ setName()

void nvinfer1::ILayer::setName ( char const *  name)
inlinenoexcept

设置层的名称。

此方法复制名称字符串。

警告
字符串名称必须以 null 结尾,并且最多为 4096 字节,包括终止符。
另请参阅
getName()

◆ setOutputType()

void nvinfer1::ILayer::setOutputType ( int32_t  index,
DataType  dataType 
)
inlinenoexcept

在弱类型网络中设置此层的输出类型。

设置输出类型会约束 TensorRT 选择生成具有给定类型输出数据的实现。 如果未设置,TensorRT 将根据层计算精度选择输出类型。 TensorRT 仍然可以根据最快的实现选择不符合要求的输出类型。 要强制选择请求的输出类型,请设置以下标志之一,这些标志在不存在此类实现时会有所不同

如果未指定层精度或回退,则输出类型取决于所选的实现,基于性能考虑因素和指定给构建器的标志。

此方法不能用于设置 TopK 层的第二个输出张量的数据类型。 topK 层的第二个输出张量的数据类型始终为 Int32。 同样,所有作为形状操作的层的输出类型必须为 DataType::kINT32,并且所有将输出类型设置为其他数据类型的尝试都将被忽略,但会发出错误消息。

请注意,层输出类型通常与输出张量的数据类型不完全相同,因为 TensorRT 可能会插入隐式重新格式化操作以将前者转换为后者。 调用 layer->setOutputType(i, type) 对层的第 i 个输出张量的数据类型没有影响,用户需要调用 layer->getOutput(i)->setType(type) 来更改张量数据类型。 如果张量被标记为网络输出,则这一点尤其重要,因为只有 setType() [而不是 setOutputType()] 会影响相应输出绑定中的数据表示。

强类型网络拒绝调用方法 setOutputType。 相反,只能为定义了方法 setToType() 的层设置输出类型。 这些层是

参数
index要设置的输出的索引
dataType输出的类型
另请参阅
getOutputType() outputTypeIsSet() resetOutputType()

◆ setPrecision()

void nvinfer1::ILayer::setPrecision ( DataType  dataType)
inlinenoexcept

在弱类型网络中设置此层的首选或必需的计算精度。

设置精度指示 TensorRT 选择以该计算精度运行的实现。 TensorRT 仍然可以选择忽略请求精度的不符合要求的最快实现。 要强制选择具有请求精度的实现,请设置以下标志之一,这些标志在不存在此类实现时会有所不同

如果未设置精度或回退,TensorRT 将根据全局性能考虑因素和指定给构建器的标志来选择层计算精度和层输入类型。

对于 IIdentityLayer:如果它转换为/从 float/half/int8/uint8 转换,则精度必须是这些类型之一,否则它必须是输入或输出类型。

强类型网络拒绝调用方法 setPrecision。 在强类型网络中,计算精度通常通过将输入张量转换为所需的类型来控制。

参数
dataType计算精度。
另请参阅
getPrecision() precisionIsSet() resetPrecision()

成员数据文档

◆ mLayer

apiv::VLayer* nvinfer1::ILayer::mLayer
protected

此类文档从以下文件生成

  版权所有 © 2024 NVIDIA Corporation
  隐私政策 | 管理我的隐私 | 请勿出售或分享我的数据 | 服务条款 | 辅助功能 | 公司政策 | 产品安全 | 联系我们