TensorRT 10.8.0
|
网络定义中所有层类的基类。 更多...
#include <NvInfer.h>
公共成员函数 | |
LayerType | getType () const noexcept |
返回层的类型。 更多... | |
void | setName (char const *name) noexcept |
设置层的名称。 更多... | |
char const * | getName () const noexcept |
返回层的名称。 更多... | |
int32_t | getNbInputs () const noexcept |
获取层的输入数量。 更多... | |
ITensor * | getInput (int32_t index) const noexcept |
获取与给定索引对应的层输入。 更多... | |
int32_t | getNbOutputs () const noexcept |
获取层的输出数量。 更多... | |
ITensor * | getOutput (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 |
![]() | |
INoCopy ()=default | |
virtual | ~INoCopy ()=default |
INoCopy (INoCopy const &other)=delete | |
INoCopy & | operator= (INoCopy const &other)=delete |
INoCopy (INoCopy &&other)=delete | |
INoCopy & | operator= (INoCopy &&other)=delete |
保护属性 | |
apiv::VLayer * | mLayer |
网络定义中所有层类的基类。
|
protectedvirtualdefaultnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
返回层的名称。
|
inlinenoexcept |
获取层的输入数量。
|
inlinenoexcept |
获取层的输出数量。
|
inlinenoexcept |
获取与给定索引对应的层输出。
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
重置此层的计算精度
|
inlinenoexcept |
用特定的张量替换此层的输入。
index | 要修改的输入的索引。 |
tensor | 新的输入张量 |
除了 IFillLayer, ILoopOutputLayer, INMSLayer, IResizeLayer, IShuffleLayer, 和 ISliceLayer 之外,此方法无法更改层的输入数量。 index 参数必须小于 getNbInputs() 的值。
有关具有特殊行为的层的 setInput() 重载的注释,请参阅。
|
inlinenoexcept |
为此层设置元数据。
元数据在 IEngineInspector 使用设置为 kDETAILED 的 ProfilingVerbosity 返回的 JSON 中发出。
metadata | 每层元数据。 |
|
inlinenoexcept |
|
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 | 输出的类型 |
|
inlinenoexcept |
在弱类型网络中设置此层的首选或必需的计算精度。
设置精度指示 TensorRT 选择以该计算精度运行的实现。 TensorRT 仍然可以选择忽略请求精度的不符合要求的最快实现。 要强制选择具有请求精度的实现,请设置以下标志之一,这些标志在不存在此类实现时会有所不同
如果未设置精度或回退,TensorRT 将根据全局性能考虑因素和指定给构建器的标志来选择层计算精度和层输入类型。
对于 IIdentityLayer:如果它转换为/从 float/half/int8/uint8 转换,则精度必须是这些类型之一,否则它必须是输入或输出类型。
强类型网络拒绝调用方法 setPrecision。 在强类型网络中,计算精度通常通过将输入张量转换为所需的类型来控制。
dataType | 计算精度。 |
|
protected |
版权所有 © 2024 NVIDIA Corporation
隐私政策 | 管理我的隐私 | 请勿出售或分享我的数据 | 服务条款 | 辅助功能 | 公司政策 | 产品安全 | 联系我们