层基类¶
ITensor¶
- tensorrt.TensorLocation¶
数据的物理位置。
成员
DEVICE : 数据存储在设备上。
HOST : 数据存储在主机上。
- tensorrt.TensorFormat¶
输入/输出张量的格式。
此枚举被插件和网络 I/O 张量使用。
有关数据格式的更多信息,请参阅 TensorRT 开发者指南中的主题“数据格式描述” (https://docs.nvda.net.cn/deeplearning/sdk/tensorrt-developer-guide/index.html)。
成员
- LINEAR
行主序线性格式。
对于维度为 {N, C, H, W} 的张量,W 轴始终具有单位步幅,并且每个其他轴的步幅至少是下一个维度乘以下一个步幅的乘积。步幅与维度为 [N][C][H][W] 的 C 数组的步幅相同。
- CHW2
双通道宽向量化行主序格式。
此格式绑定到 FP16。仅适用于维度 >= 3。
对于维度为 {N, C, H, W} 的张量,内存布局等效于维度为 [N][(C+1)/2][H][W][2] 的 C 数组,其中张量坐标 (n, c, h, w) 映射到数组下标 [n][c/2][h][w][c%2]。
- HWC8
八通道格式,其中 C 填充为 8 的倍数。
此格式绑定到 FP16 和 BF16。仅适用于维度 >= 3。
对于维度为 {N, C, H, W} 的张量,内存布局等效于维度为 [N][H][W][(C+7)/8*8] 的数组,其中张量坐标 (n, c, h, w) 映射到数组下标 [n][h][w][c]。
- CHW4
四通道宽向量化行主序格式。此格式绑定到 FP16 和 INT8。仅适用于维度 >= 3。
对于维度为 {N, C, H, W} 的张量,内存布局等效于维度为 [N][(C+3)/4][H][W][4] 的 C 数组,其中张量坐标 (n, c, h, w) 映射到数组下标 [n][c/4][h][w][c%4]。
- CHW16
十六通道宽向量化行主序格式。
此格式绑定到 FP16。仅适用于维度 >= 3。
对于维度为 {N, C, H, W} 的张量,内存布局等效于维度为 [N][(C+15)/16][H][W][16] 的 C 数组,其中张量坐标 (n, c, h, w) 映射到数组下标 [n][c/16][h][w][c%16]。
- CHW32
三十二通道宽向量化行主序格式。
此格式仅适用于维度 >= 3。
对于维度为 {N, C, H, W} 的张量,内存布局等效于维度为 [N][(C+31)/32][H][W][32] 的 C 数组,其中张量坐标 (n, c, h, w) 映射到数组下标 [n][c/32][h][w][c%32]。
- DHWC8
八通道格式,其中 C 填充为 8 的倍数。
此格式绑定到 FP16 和 BF16,并且仅适用于维度 >= 4。
对于维度为 {N, C, D, H, W} 的张量,内存布局等效于维度为 [N][D][H][W][(C+7)/8*8] 的数组,其中张量坐标 (n, c, d, h, w) 映射到数组下标 [n][d][h][w][c]。
- CDHW32
具有 3 个空间维度的三十二通道宽向量化行主序格式。
此格式绑定到 FP16 和 INT8。仅适用于维度 >= 4。
对于维度为 {N, C, D, H, W} 的张量,内存布局等效于维度为 [N][(C+31)/32][D][H][W][32] 的 C 数组,其中张量坐标 (n, d, c, h, w) 映射到数组下标 [n][c/32][d][h][w][c%32]。
- HWC
非向量化通道最后格式。此格式绑定到 FP32、FP16、INT8、INT64 和 BF16,并且仅适用于维度 >= 3。
- DLA_LINEAR
DLA 平面格式。行主序格式。沿 H 轴步进的步幅向上舍入为 64 字节。
此格式绑定到 FP16/Int8,并且仅适用于维度 >= 3。
对于维度为 {N, C, H, W} 的张量,内存布局等效于维度为 [N][C][H][roundUp(W, 64/elementSize)] 的 C 数组,其中 elementSize 对于 FP16 为 2,对于 Int8 为 1,张量坐标 (n, c, h, w) 映射到数组下标 [n][c][h][w]。
- DLA_HWC4
DLA 图像格式。通道最后格式。C 只能为 1、3、4。如果 C == 3,则将四舍五入为 4。沿 H 轴步进的步幅向上舍入为 32 字节。
此格式绑定到 FP16/Int8,并且仅适用于维度 >= 3。
对于维度为 {N, C, H, W} 的张量,当 C 分别为 1、3、4 时,C’ 为 1、4、4,内存布局等效于维度为 [N][H][roundUp(W, 32/C’/elementSize)][C’] 的 C 数组,其中 elementSize 对于 FP16 为 2,对于 Int8 为 1,C’ 是四舍五入的 C。张量坐标 (n, c, h, w) 映射到数组下标 [n][h][w][c]。
- HWC16
十六通道格式,其中 C 填充为 16 的倍数。此格式绑定到 FP16/INT8/FP8。仅适用于维度 >= 3。
对于维度为 {N, C, H, W} 的张量,内存布局等效于维度为 [N][H][W][(C+15)/16*16] 的数组,其中张量坐标 (n, c, h, w) 映射到数组下标 [n][h][w][c]。
- DHWC
非向量化通道最后格式。此格式绑定到 FP32。仅适用于维度 >= 4。
- class tensorrt.ITensor¶
INetworkDefinition 中的张量 。
- 变量:
name –
str
张量名称。对于网络输入,名称由应用程序分配。对于作为层输出的张量,会分配一个默认名称,该名称由层名称后跟方括号中的输出索引组成。每个网络输入和输出张量都必须具有唯一的名称。shape –
Dims
张量的形状。对于网络输入,形状由应用程序分配。对于网络输出,它基于层参数和层的输入计算得出。如果在网络中修改了张量大小或参数,则将重新计算所有相关张量的形状。此调用仅对网络输入张量合法,因为层输出张量的形状是根据层输入和参数推断出来的。dtype –
DataType
张量的数据类型。如果类型对于给定的张量无效,则类型不变。broadcast_across_batch –
bool
[已弃用] 在 TensorRT 10.0 中已弃用。由于隐式批次维度支持已移除,因此始终为 false。location –
TensorLocation
张量的存储位置。is_network_input –
bool
张量是否为网络输入。is_network_output –
bool
张量是否为网络输出。dynamic_range –
Tuple[float, float]
[已弃用] 在 TensorRT 10.1 中已弃用。已被显式量化取代。包含动态范围的 [最小值,最大值] 的元组,如果未设置范围,则为None
。is_shape –
bool
张量是否为形状张量。allowed_formats –
int32
允许的 TensorFormat 候选集。这应该是一个整数,由一个或多个TensorFormat
组成,通过位移后按位或运算组合。例如,1 << int(TensorFormat.CHW4) | 1 << int(TensorFormat.CHW32)
。
- get_dimension_name(self: tensorrt.tensorrt.ITensor, index: int) str ¶
获取输入维度的名称。
- 参数:
index – 维度的索引。
- 返回值:
维度的名称,如果维度未命名,则为 null。
- reset_dynamic_range(self: tensorrt.tensorrt.ITensor) None ¶
[已弃用] 在 TensorRT 10.1 中已弃用。已被显式量化取代。撤消设置动态范围的效果。
- set_dimension_name(self: tensorrt.tensorrt.ITensor, index: int, name: str) None ¶
命名输入张量的维度。
将输入张量的运行时维度与符号名称关联。具有相同非空名称的维度在运行时必须相等。了解运行时维度的这种相等性可能有助于 TensorRT 优化器。运行时和构建时维度都可以命名。如果再次调用该函数,使用相同的索引,它将覆盖之前的名称。如果传递 None 作为名称,它将清除维度的名称。
例如,setDimensionName(0, “n”) 将符号名称“n”与前导维度关联。
- 参数:
index – 维度的索引。
name – 维度的名称。
- set_dynamic_range(self: tensorrt.tensorrt.ITensor, min: float, max: float) bool ¶
[已弃用] 在 TensorRT 10.1 中已弃用。已被显式量化取代。设置张量的动态范围。注意:建议改用
tensor.dynamic_range = (min, max)
。- 参数:
min – 动态范围的最小值。
max – 动态范围的最大值。
- 返回值:
如果成功设置范围,则为 true。否则为 false。
ILayer¶
- tensorrt.LayerType¶
层类型
成员
CONVOLUTION : 卷积层
GRID_SAMPLE : Grid Sample 层
NMS : NMS 层
ACTIVATION : 激活层
POOLING : 池化层
LRN : LRN 层
SCALE : Scale 层
SOFTMAX : Softmax 层
DECONVOLUTION : 反卷积层
CONCATENATION : 串联层
ELEMENTWISE : Elementwise 层
PLUGIN : 插件层
UNARY : 一元层
PADDING : 填充层
SHUFFLE : Shuffle 层
REDUCE : Reduce 层
TOPK : TopK 层
GATHER : Gather 层
MATRIX_MULTIPLY : 矩阵乘法层
RAGGED_SOFTMAX : Ragged Softmax 层
CONSTANT : 常量层
IDENTITY : 恒等层
CAST : Cast 层
PLUGIN_V2 : PluginV2 层
SLICE : Slice 层
SHAPE : Shape 层
PARAMETRIC_RELU : 参数化 ReLU 层
RESIZE : Resize 层
TRIP_LIMIT : 循环 Trip Limit 层
RECURRENCE : 循环 Recurrence 层
ITERATOR : 循环 Iterator 层
LOOP_OUTPUT : 循环输出层
SELECT : Select 层
ASSERTION : Assertion 层
FILL : Fill 层
QUANTIZE : 量化层
DEQUANTIZE : 反量化层
CONDITION : If 条件层
CONDITIONAL_INPUT : If 条件输入层
CONDITIONAL_OUTPUT : If 条件输出层
SCATTER : Scatter 层
EINSUM : Einsum 层
ONE_HOT : OneHot 层
NON_ZERO : NonZero 层
REVERSE_SEQUENCE : ReverseSequence 层
NORMALIZATION : 归一化层
PLUGIN_V3 : PluginV3 层
SQUEEZE : Squeeze 层
UNSQUEEZE : Unsqueeze 层
CUMULATIVE : 累积层
DYNAMIC_QUANTIZE : 动态量化层
- class tensorrt.ILayer¶
INetworkDefinition 中所有层类的基类 。
- 变量:
- Ival 元数据:
str
每层元数据。
- get_input(self: tensorrt.tensorrt.ILayer, index: int) tensorrt.tensorrt.ITensor ¶
获取与给定索引对应的层输入。
- 参数:
index – 输入张量的索引。
- 返回值:
输入张量;如果索引超出范围,则为
None
。
- get_output(self: tensorrt.tensorrt.ILayer, index: int) tensorrt.tensorrt.ITensor ¶
获取与给定索引对应的层输出。
- 参数:
index – 输出张量的索引。
- 返回值:
输出张量;如果索引超出范围,则为
None
。
- get_output_type(self: tensorrt.tensorrt.ILayer, index: int) tensorrt.tensorrt.DataType ¶
获取层的输出类型。
- 参数:
index – 输出张量的索引。
- 返回值:
输出精度。默认值:DataType.FLOAT。
- output_type_is_set(self: tensorrt.tensorrt.ILayer, index: int) bool ¶
是否已为此层设置输出类型。
- 参数:
index – 输出的索引。
- 返回值:
输出类型是否已显式设置。
- reset_output_type(self: tensorrt.tensorrt.ILayer, index: int) None ¶
重置此层的输出类型。
- 参数:
index – 输出的索引。
- reset_precision(self: tensorrt.tensorrt.ILayer) None ¶
重置层的计算精度。
- set_input(self: tensorrt.tensorrt.ILayer, index: int, tensor: tensorrt.tensorrt.ITensor) None ¶
设置与给定索引对应的层输入。
- 参数:
index – 输入张量的索引。
tensor – 输入张量。
- set_output_type(self: tensorrt.tensorrt.ILayer, index: int, dtype: tensorrt.tensorrt.DataType) None ¶
约束层以生成具有给定类型的输出数据。请注意,此方法不能用于设置 topK 层的第二个输出张量的数据类型。 topK 层的第二个输出张量的数据类型始终为
int32
。- 参数:
index – 要设置类型的输出张量的索引。
dtype – 输出的 DataType。