TensorRT 10.8.0
nvinfer1::INetworkDefinition 类参考

构建器的输入网络定义。 更多...

#include <NvInfer.h>

nvinfer1::INetworkDefinition 的继承关系图
nvinfer1::INoCopy

公共成员函数

virtual ~INetworkDefinition () noexcept=default
 
ITensoraddInput (char const *name, DataType type, Dims const &dimensions) noexcept
 向网络添加输入张量。 更多...
 
void markOutput (ITensor &tensor) noexcept
 将张量标记为网络输出。 更多...
 
bool markDebug (ITensor &tensor) noexcept
 将张量标记为调试张量。 更多...
 
bool unmarkDebug (ITensor &tensor) noexcept
 取消张量作为调试张量的标记。 更多...
 
bool isDebugTensor (nvinfer1::ITensor const &tensor) const noexcept
 检查张量是否标记为调试张量。 更多...
 
IActivationLayeraddActivation (ITensor &input, ActivationType type) noexcept
 向网络添加激活层。 更多...
 
ILRNLayeraddLRN (ITensor &input, int64_t window, float alpha, float beta, float k) noexcept
 向网络添加 LRN 层。 更多...
 
IScaleLayeraddScale (ITensor &input, ScaleMode mode, Weights shift, Weights scale, Weights power) noexcept
 向网络添加 Scale 层。 更多...
 
ISoftMaxLayeraddSoftMax (ITensor &input) noexcept
 向网络添加 SoftMax 层。 更多...
 
IConcatenationLayeraddConcatenation (ITensor *const *inputs, int32_t nbInputs) noexcept
 向网络添加 concatenation 层。 更多...
 
IElementWiseLayeraddElementWise (ITensor &input1, ITensor &input2, ElementWiseOperation op) noexcept
 向网络添加 elementwise 层。 更多...
 
IUnaryLayeraddUnary (ITensor &input, UnaryOperation operation) noexcept
 向网络添加 unary 层。 更多...
 
IShuffleLayeraddShuffle (ITensor &input) noexcept
 向网络添加 shuffle 层。 更多...
 
IOneHotLayeraddOneHot (ITensor &indices, ITensor &values, ITensor &depth, int32_t axis) noexcept
 向网络添加 OneHot 层。 更多...
 
int32_t getNbLayers () const noexcept
 获取网络中的层数。 更多...
 
ILayergetLayer (int32_t index) const noexcept
 获取给定索引指定的层。 更多...
 
int32_t getNbInputs () const noexcept
 获取网络中的输入数量。 更多...
 
ITensorgetInput (int32_t index) const noexcept
 获取给定索引指定的输入张量。 更多...
 
int32_t getNbOutputs () const noexcept
 获取网络中的输出数量。 更多...
 
ITensorgetOutput (int32_t index) const noexcept
 获取给定索引指定的输出张量。 更多...
 
IReduceLayeraddReduce (ITensor &input, ReduceOperation operation, uint32_t reduceAxes, bool keepDimensions) noexcept
 向网络添加 reduce 层。 更多...
 
ITopKLayeraddTopK (ITensor &input, TopKOperation op, int32_t k, uint32_t reduceAxes) noexcept
 向网络添加 TopK 层。 更多...
 
IGatherLayeraddGather (ITensor &data, ITensor &indices, int32_t axis) noexcept
 添加 gather,模式为 GatherMode::kDEFAULT,并指定轴和 nbElementWiseDims=0。 更多...
 
IGatherLayeraddGatherV2 (ITensor &data, ITensor &indices, GatherMode mode) noexcept
 添加 gather,指定模式,axis=0 和 nbElementWiseDims=0。 更多...
 
IRaggedSoftMaxLayeraddRaggedSoftMax (ITensor &input, ITensor &bounds) noexcept
 向网络添加 RaggedSoftMax 层。 更多...
 
IMatrixMultiplyLayeraddMatrixMultiply (ITensor &input0, MatrixOperation op0, ITensor &input1, MatrixOperation op1) noexcept
 向网络添加 MatrixMultiply 层。 更多...
 
INonZeroLayeraddNonZero (ITensor &input) noexcept
 向网络添加 nonzero 层。 更多...
 
IConstantLayeraddConstant (Dims const &dimensions, Weights weights) noexcept
 向网络添加 constant 层。 更多...
 
IIdentityLayeraddIdentity (ITensor &input) noexcept
 添加 identity 层。 更多...
 
ICastLayeraddCast (ITensor &input, DataType toType) noexcept
 添加 cast 层。 更多...
 
void removeTensor (ITensor &tensor) noexcept
 从网络定义中移除张量。 更多...
 
void unmarkOutput (ITensor &tensor) noexcept
 取消张量作为网络输出的标记。 更多...
 
TRT_DEPRECATED IPluginV2LayeraddPluginV2 (ITensor *const *inputs, int32_t nbInputs, IPluginV2 &plugin) noexcept
 使用 IPluginV2 接口向网络添加插件层。 更多...
 
IPluginV3LayeraddPluginV3 (ITensor *const *inputs, int32_t nbInputs, ITensor *const *shapeInputs, int32_t nbShapeInputs, IPluginV3 &plugin) noexcept
 向网络添加实现 IPluginV3 接口的插件层。 更多...
 
ISliceLayeraddSlice (ITensor &input, Dims const &start, Dims const &size, Dims const &stride) noexcept
 向网络添加 slice 层。 更多...
 
void setName (char const *name) noexcept
 设置网络的名称。 更多...
 
char const * getName () const noexcept
 返回与网络关联的名称。 更多...
 
IShapeLayeraddShape (ITensor &input) noexcept
 向网络添加 shape 层。 更多...
 
TRT_DEPRECATED bool hasImplicitBatchDimension () const noexcept
 查询网络是否使用隐式批次维度创建。 更多...
 
NetworkDefinitionCreationFlags getFlags () const noexcept
 获取此网络定义对象的网络定义创建标志。默认为 0。 更多...
 
bool getFlag (NetworkDefinitionCreationFlag networkDefinitionCreationFlag) const noexcept
 如果设置了网络定义创建标志,则返回 true。 更多...
 
bool markOutputForShapes (ITensor &tensor) noexcept
 启用 IExecutionContext::getShapeBinding 计算张量的值。 更多...
 
bool unmarkOutputForShapes (ITensor &tensor) noexcept
 撤消 markOutputForShapes。 更多...
 
IParametricReLULayeraddParametricReLU (ITensor &input, ITensor &slope) noexcept
 向网络添加 parametric ReLU 层。 更多...
 
IConvolutionLayeraddConvolutionNd (ITensor &input, int64_t nbOutputMaps, Dims const &kernelSize, Weights kernelWeights, Weights biasWeights) noexcept
 向网络添加多维卷积层。 更多...
 
IPoolingLayeraddPoolingNd (ITensor &input, PoolingType type, Dims const &windowSize) noexcept
 向网络添加多维 pooling 层。 更多...
 
IDeconvolutionLayeraddDeconvolutionNd (ITensor &input, int64_t nbOutputMaps, Dims kernelSize, Weights kernelWeights, Weights biasWeights) noexcept
 向网络添加多维反卷积层。 更多...
 
IScaleLayeraddScaleNd (ITensor &input, ScaleMode mode, Weights shift, Weights scale, Weights power, int32_t channelAxis) noexcept
 向网络添加多维 scale 层。 更多...
 
IResizeLayeraddResize (ITensor &input) noexcept
 向网络添加 resize 层。 更多...
 
ILoopaddLoop () noexcept
 向网络添加 loop。 更多...
 
IIfConditionaladdIfConditional () noexcept
 向网络添加 if-then-else。 更多...
 
ISelectLayeraddSelect (ITensor &condition, ITensor &thenInput, ITensor &elseInput) noexcept
 向网络添加 select 层。 更多...
 
IAssertionLayeraddAssertion (ITensor &condition, char const *message) noexcept
 向网络添加 assertion 层。 更多...
 
TRT_DEPRECATED IFillLayeraddFill (Dims const &dimensions, FillOperation op) noexcept
 向网络添加 fill 层。 更多...
 
IFillLayeraddFill (Dims const &dimensions, FillOperation op, DataType outputType) noexcept
 向网络添加 fill 层。 更多...
 
IPaddingLayeraddPaddingNd (ITensor &input, Dims const &prePadding, Dims const &postPadding) noexcept
 向网络添加 padding 层。目前仅支持 2D padding。 更多...
 
bool setWeightsName (Weights weights, char const *name) noexcept
 将名称与给定权重的当前所有用法关联。 更多...
 
void setErrorRecorder (IErrorRecorder *recorder) noexcept
 为此接口设置 ErrorRecorder。 更多...
 
IErrorRecordergetErrorRecorder () const noexcept
 获取分配给此接口的 ErrorRecorder。 更多...
 
TRT_DEPRECATED IDequantizeLayeraddDequantize (ITensor &input, ITensor &scale) noexcept
 向网络添加反量化层。 更多...
 
IDequantizeLayeraddDequantize (ITensor &input, ITensor &scale, DataType outputType) noexcept
 向网络添加反量化层。 更多...
 
IScatterLayeraddScatter (ITensor &data, ITensor &indices, ITensor &updates, ScatterMode mode) noexcept
 向网络添加 Scatter 层,模式为指定模式,axis=0。 更多...
 
TRT_DEPRECATED IQuantizeLayeraddQuantize (ITensor &input, ITensor &scale) noexcept
 向网络添加量化层。 更多...
 
IQuantizeLayeraddQuantize (ITensor &input, ITensor &scale, DataType outputType) noexcept
 向网络添加量化层。 更多...
 
IDynamicQuantizeLayeraddDynamicQuantize (ITensor &input, int32_t axis, int32_t blockSize, DataType outputType, DataType scaleType) noexcept
 向网络添加动态量化层。 更多...
 
IEinsumLayeraddEinsum (ITensor *const *inputs, int32_t nbInputs, char const *equation) noexcept
 向网络添加 Einsum 层。 更多...
 
IGridSampleLayeraddGridSample (ITensor &input, ITensor &grid) noexcept
 向网络添加 GridSample 层。 更多...
 
INMSLayeraddNMS (ITensor &boxes, ITensor &scores, ITensor &maxOutputBoxesPerClass) noexcept
 向网络添加非极大值抑制层。 更多...
 
IReverseSequenceLayeraddReverseSequence (ITensor &input, ITensor &sequenceLens) noexcept
 向网络添加 ReverseSequence 层。 更多...
 
INormalizationLayeraddNormalization (ITensor &input, ITensor &scale, ITensor &bias, uint32_t axesMask) noexcept
 向网络添加 normalization 层。 更多...
 
ICumulativeLayeraddCumulative (ITensor &input, ITensor &axis, CumulativeOperation operation, bool exclusive, bool reverse) noexcept
 向网络添加 cumulative 层。 更多...
 
virtual IBuildergetBuilder () const noexcept
 返回从中创建此 INetworkDefinition 的构建器。 更多...
 
bool markWeightsRefittable (char const *name) noexcept
 当构建器标志 kREFIT_INDIVIDUAL 设置时,将权重标记为可重新拟合。 更多...
 
bool unmarkWeightsRefittable (char const *name) noexcept
 当构建器标志 kREFIT_INDIVIDUAL 设置时,取消权重作为可重新拟合的标记。 更多...
 
bool areWeightsMarkedRefittable (char const *name) const noexcept
 权重是否已标记为可重新拟合。 更多...
 
ISqueezeLayeraddSqueeze (ITensor &input, ITensor &axes) noexcept
 向网络添加 squeeze 层。 更多...
 
IUnsqueezeLayeraddUnsqueeze (ITensor &input, ITensor &axes) noexcept
 向网络添加 unsqueeze 层。 更多...
 

保护属性

apiv::VNetworkDefinition * mImpl
 

附加的继承成员

- 继承自 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
 

详细描述

网络的定义,用于构建器。

网络定义定义了网络的结构,并与 IBuilderConfig 结合使用,通过 IBuilder 构建成引擎。INetworkDefinition 可以拥有所有显式维度,即完全维度模式,在网络定义中。之前的模式,即隐式批大小模式,已被弃用。

具有隐式批处理维度的网络返回不包含隐式维度的层维度,而批处理大小在执行/入队时指定。如果网络具有所有指定的维度,则第一个维度遵循元素级广播规则:如果对于某些输入为 1,而对于所有其他输入为某个值 N,则每个输出的第一个维度为 N,并且第一个维度为 1 的输入将被广播。不支持跨层输入具有不同的批处理大小。

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

构造函数 & 析构函数文档

◆ ~INetworkDefinition()

virtual nvinfer1::INetworkDefinition::~INetworkDefinition ( )
virtualdefaultnoexcept

成员函数文档

◆ addActivation()

IActivationLayer * nvinfer1::INetworkDefinition::addActivation ( ITensor input,
ActivationType  type 
)
inlinenoexcept

向网络添加激活层。

参数
input图层的输入张量。
type要应用的激活函数类型。

请注意,对于需要这些参数的激活函数,必须在输出上使用 setAlpha() 和 setBeta() 方法。

另请参阅
IActivationLayer ActivationType
警告
Int32 和 Int64 仅对激活类型 kRELU 有效。
返回值
新的激活层,如果无法创建,则为 nullptr。

◆ addAssertion()

IAssertionLayer * nvinfer1::INetworkDefinition::addAssertion ( ITensor condition,
char const *  message 
)
inlinenoexcept

向网络添加断言层。

参数
condition图层的输入张量。
message断言失败时要打印的消息。
另请参阅
IAssertionLayer
返回值
新的断言层,如果无法创建,则为 nullptr。

输入张量必须是布尔形状张量。

◆ addCast()

ICastLayer * nvinfer1::INetworkDefinition::addCast ( ITensor input,
DataType  toType 
)
inlinenoexcept

添加类型转换层。

参数
input图层的输入张量。
toType输出张量的 DataType
另请参阅
ICastLayer
返回值
新的类型转换层,如果无法创建,则为 nullptr。

◆ addConcatenation()

IConcatenationLayer * nvinfer1::INetworkDefinition::addConcatenation ( ITensor *const *  inputs,
int32_t  nbInputs 
)
inlinenoexcept

向网络添加连接层。

参数
inputs图层的输入张量。
nbInputs输入张量的数量。
另请参阅
IConcatenationLayer
返回值
新的连接层,如果无法创建,则为 nullptr。
警告
除了连接轴之外,所有张量必须具有相同的维度。

◆ addConstant()

IConstantLayer * nvinfer1::INetworkDefinition::addConstant ( Dims const &  dimensions,
Weights  weights 
)
inlinenoexcept

向网络添加常量层。

参数
dimensions常量的维度。
weights常量值,表示为权重。
另请参阅
IConstantLayer
返回值
新的常量层,如果无法创建,则为 nullptr。

如果 weights.type 是 DataType::kINT32,则输出是 32 位索引的张量。否则,输出是实数值的张量,输出类型将遵循 TensorRT 的正常精度规则。

如果使用通配符维度,则运行时维度的体积必须等于指定的权重数。

警告
DataType::kUINT8 不受支持。

◆ addConvolutionNd()

IConvolutionLayer * nvinfer1::INetworkDefinition::addConvolutionNd ( ITensor input,
int64_t  nbOutputMaps,
Dims const &  kernelSize,
Weights  kernelWeights,
Weights  biasWeights 
)
inlinenoexcept

向网络添加多维卷积层。

参数
input卷积的输入张量。
nbOutputMaps卷积的输出特征图的数量。
kernelSize卷积核的多维尺寸。
kernelWeights卷积的核权重。
biasWeights卷积的偏置权重。Weights{} 表示无偏置。
另请参阅
IConvolutionLayer
警告
为输入张量的 'C' 维度指定通配符值是错误的。
Int32 张量不是有效的输入张量。
仅支持 2D 或 3D 卷积。
返回值
新的卷积层,如果无法创建,则为 nullptr。

◆ addCumulative()

ICumulativeLayer * nvinfer1::INetworkDefinition::addCumulative ( ITensor input,
ITensor axis,
CumulativeOperation  operation,
bool  exclusive,
bool  reverse 
)
inlinenoexcept

向网络添加累积层。

参数
input图层的输入张量。
axis应用累积运算的轴张量。当前,它必须是构建时常量 0D 形状张量,并且必须在范围 [-rank(input), rank(input)-1] 内。负值表示从后向前计数维度。
operation要执行的归约运算。
exclusive指定是独占累积还是包含累积的布尔值。
reverse指定是否应向后应用累积运算的布尔值。

累积层通过对张量 input 在由 axis 指定的轴上执行指定的累积 operation 来工作。

另请参阅
ICumulativeLayer
返回值
新的累积层,如果无法创建,则为 nullptr。

◆ addDeconvolutionNd()

IDeconvolutionLayer * nvinfer1::INetworkDefinition::addDeconvolutionNd ( ITensor input,
int64_t  nbOutputMaps,
Dims  kernelSize,
Weights  kernelWeights,
Weights  biasWeights 
)
inlinenoexcept

向网络添加多维反卷积层。

参数
input图层的输入张量。
nbOutputMaps输出特征图的数量。
kernelSize反卷积核的多维尺寸。
kernelWeights反卷积的核权重。
biasWeights反卷积的偏置权重。Weights{} 表示无偏置。
另请参阅
IDeconvolutionLayer
警告
为输入张量的 'C' 维度指定通配符值是错误的。
Int32 张量不是有效的输入张量。
仅支持 2D 或 3D 反卷积。
返回值
新的反卷积层,如果无法创建,则为 nullptr。

◆ addDequantize() [1/2]

TRT_DEPRECATED IDequantizeLayer * nvinfer1::INetworkDefinition::addDequantize ( ITensor input,
ITensor scale 
)
inlinenoexcept

向网络添加反量化层。

参数
input要反量化的输入张量。
scale具有比例值的张量。
另请参阅
IDequantizeLayer

input 张量数据类型必须是 DataType::kINT8/DataType::kFP8。scale 张量数据类型必须是 DataType::kFLOAT。以 scale 张量结尾的子图必须是构建时常量。

返回值
新的量化层,如果无法创建,则为 nullptr。
已弃用
在 TensorRT 9.0 中已弃用。被三参数 addDequantize 取代。

◆ addDequantize() [2/2]

IDequantizeLayer * nvinfer1::INetworkDefinition::addDequantize ( ITensor input,
ITensor scale,
DataType  outputType 
)
inlinenoexcept

向网络添加反量化层。

参数
input要反量化的输入张量。
scale具有比例值的张量。
另请参阅
IDequantizeLayer

input 张量数据类型必须是 DataType::kINT8/DataType::kFP8/DataType::kINT4。scale 张量数据类型默认为 DataType::kFLOAT。对于强类型网络,它必须与输出数据类型相同。以 scale 张量结尾的子图必须是构建时常量。outputType 输出张量数据类型,默认值为 DataType::kFLOAT。后续使用 setToType 或 setOutputType 设置输出类型的调用必须保持一致。对于强类型网络,它必须与比例数据类型相同。

返回值
新的量化层,如果无法创建,则为 nullptr。

◆ addDynamicQuantize()

IDynamicQuantizeLayer * nvinfer1::INetworkDefinition::addDynamicQuantize ( ITensor input,
int32_t  axis,
int32_t  blockSize,
DataType  outputType,
DataType  scaleType 
)
inlinenoexcept

向网络添加动态量化层。

此层对其输入张量执行动态块量化,并输出量化数据和计算出的块比例因子。块大小目前限制为 16,并且分块轴的大小必须可被 16 整除。

参数
input要量化的输入张量。其数据类型必须是 DataType::kFLOATDataType::kHALFDataType::kBF16 之一。目前仅支持 2D 和 3D 输入。
axis被切分成块的轴。该轴必须是最后一个或倒数第二个维度。
blockSize使用共享比例因子量化的元素数量。目前仅支持 16 个元素的块。

outputType 量化输出张量的数据类型,必须是 DataType::kFP4。后续使用 setToType 或 setOutputType 设置输出类型的调用必须保持一致。scaleType 用于量化输入数据的比例因子数据类型,必须是 DataType::kFP8

返回值
新的动态量化层,如果无法创建,则为 nullptr。
另请参阅
IDynamicQuantizeLayer

◆ addEinsum()

IEinsumLayer * nvinfer1::INetworkDefinition::addEinsum ( ITensor *const *  inputs,
int32_t  nbInputs,
char const *  equation 
)
inlinenoexcept

向网络添加 Einsum 层。

参数
inputs图层的输入张量。
nbInputs输入张量的数量。
equation图层的方程
另请参阅
IEinsumLayer
返回值
新的 Einsum 层,如果无法创建,则为 nullptr。

◆ addElementWise()

IElementWiseLayer * nvinfer1::INetworkDefinition::addElementWise ( ITensor input1,
ITensor input2,
ElementWiseOperation  op 
)
inlinenoexcept

向网络添加逐元素层。

参数
input1图层的第一个输入张量。
input2图层的第二个输入张量。
op图层应用的二元运算。

输入张量必须具有相同的秩和兼容的类型。如果两种类型相同或都在集合 {kFLOAT, kHALF} 中,则它们是兼容的。对于每个维度,它们的长度必须匹配,或者其中一个必须为 1。在后一种情况下,张量沿该轴广播。

输出张量与输入具有相同的秩。对于每个维度,其长度是相应输入维度的长度的最大值。

如果输出是形状张量,则输入是形状张量。

另请参阅
IElementWiseLayer
返回值
新的逐元素层,如果无法创建,则为 nullptr。

◆ addFill() [1/2]

TRT_DEPRECATED IFillLayer * nvinfer1::INetworkDefinition::addFill ( Dims const &  dimensions,
FillOperation  op 
)
inlinenoexcept

向网络添加填充层。

参数
dimensions如果输入 0 缺失,则为输出张量维度。
op图层应用的填充操作。
警告
对于 FillOperation::kLINSPACE,对于静态 start/delta,dimensions.nbDims 必须为 1。如果 delta 作为 1D 张量提供,则 delta 的长度必须与 dimensions.nbDims 匹配。

由于随机状态在调用之间共享,因此如果 opFillOperation::kRANDOM_UNIFORMFillOperation::kRANDOM_NORMAL 之一,则此层在后续调用中是不确定的,因为相同的输入将产生不同的输出张量。当从相同的初始状态开始时,生成的输出张量是确定的。

另请参阅
IFillLayer
返回值
新的填充层,如果无法创建,则为 nullptr。
已弃用
在 TensorRT 9.0 中已弃用。被三参数 addFill 取代。

◆ addFill() [2/2]

IFillLayer * nvinfer1::INetworkDefinition::addFill ( Dims const &  dimensions,
FillOperation  op,
DataType  outputType 
)
inlinenoexcept

向网络添加填充层。

参数
dimensions如果输入 0 缺失,则为输出张量维度。
op图层应用的填充操作。
outputType可选的输出张量数据类型,必须是 DataType::kFLOATDataType::kHALFDataType::kINT32DataType::kINT64。此参数仅用于静态 alpha/beta。后续使用 setToType 或 setOutputType 设置输出类型的调用必须保持一致。
警告
对于 FillOperation::kLINSPACE,对于静态 start/delta,dimensions.nbDims 必须为 1。如果 delta 作为 1D 张量提供,则 delta 的长度必须与 dimensions.nbDims 匹配。

由于随机状态在后续调用之间共享,因此如果 opFillOperation::kRANDOM_UNIFORMFillOperation::kRANDOM_NORMAL 之一,则此层在后续调用中是不确定的,因为相同的输入将产生不同的输出张量。当从相同的初始状态开始时,生成的输出张量是确定的。

另请参阅
IFillLayer
返回值
新的填充层,如果无法创建,则为 nullptr。

◆ addGather()

IGatherLayer * nvinfer1::INetworkDefinition::addGather ( ITensor data,
ITensor indices,
int32_t  axis 
)
inlinenoexcept

添加 Gather,模式为 GatherMode::kDEFAULT,并指定轴和 nbElementWiseDims=0。

参数
data从中收集值的张量。
indices从中获取索引以填充输出张量的张量。
axis要在数据张量上收集的轴。
另请参阅
IGatherLayer
返回值
新的 Gather 层,如果无法创建,则为 nullptr。

◆ addGatherV2()

IGatherLayer * nvinfer1::INetworkDefinition::addGatherV2 ( ITensor data,
ITensor indices,
GatherMode  mode 
)
inlinenoexcept

添加 Gather,指定模式,axis=0 和 nbElementWiseDims=0。

参数
data从中收集值的张量。
indices从中获取索引以填充输出张量的张量。
modeGather 模式。
另请参阅
IGatherLayer
返回值
新的 Gather 层,如果无法创建,则为 nullptr。

◆ addGridSample()

IGridSampleLayer * nvinfer1::INetworkDefinition::addGridSample ( ITensor input,
ITensor grid 
)
inlinenoexcept

向网络添加 GridSample 层。

参数
input图层的输入张量。
grid图层的网格张量。
另请参阅
IGridSampleLayer

为 4d 形状输入张量创建具有 InterpolationMode::kLINEAR、未对齐角点和 SampleMode::kFILL 的 GridSample 层。

返回值
新的 GridSample 层,如果无法创建,则为 nullptr。

◆ addIdentity()

IIdentityLayer * nvinfer1::INetworkDefinition::addIdentity ( ITensor input)
inlinenoexcept

添加恒等层。

参数
input图层的输入张量。
另请参阅
IIdentityLayer
返回值
新的恒等层,如果无法创建,则为 nullptr。

◆ addIfConditional()

IIfConditional * nvinfer1::INetworkDefinition::addIfConditional ( )
inlinenoexcept

向网络添加 if-then-else 结构。

IIfConditional 提供了一种有条件地执行网络部分的方法。

返回值
指向 IIfConditional 的指针,可用于为 if-then-else 添加条件边界层。
另请参阅
IIfConditional

◆ addInput()

ITensor * nvinfer1::INetworkDefinition::addInput ( char const *  name,
DataType  type,
Dims const &  dimensions 
)
inlinenoexcept

向网络添加输入张量。

每个输入和输出张量都必须具有唯一的名称。体积必须小于 2^31 个元素。

对于具有通配符维度的网络,体积基于 IOptimizationProfile 指定的最大值。维度通常是非负整数。例外情况是,在具有所有显式维度的网络中,-1 可以用作运行时指定维度的通配符。具有此类通配符的输入张量必须在 IOptimizationProfiles 中具有相应的条目,指示允许的极值,并且输入维度必须由 IExecutionContext::setInputShape 设置。不同的 IExecutionContext 实例可以具有不同的维度。通配符维度仅在 EngineCapability::kSTANDARD 中受支持。在安全上下文中不支持它们。DLA 不支持通配符维度。

张量维度是独立于格式指定的。例如,如果张量以“NHWC”或矢量化格式格式化,则维度仍以 {N, C, H, W} 的顺序指定。对于具有通道维度的 2D 图像,最后三个维度始终为 {C,H,W}。对于具有通道维度的 3D 图像,最后四个维度始终为 {C,D,H,W}。

参数
name张量的名称。
type张量中保存的数据类型。
dimensions张量的维度。
警告
在由训练参数确定的维度上指定通配符值是错误的。
如果在具有显式维度的 DLA 上运行,则只有前导维度可以是通配符。并且提供的配置文件必须具有相同的最小、最优和最大维度。
字符串名称必须以 null 结尾,并且最多为 4096 字节,包括终止符。
另请参阅
ITensor
返回值
新的张量,如果出现错误,则为 nullptr。

◆ addLoop()

ILoop * nvinfer1::INetworkDefinition::addLoop ( )
inlinenoexcept

向网络添加循环。

ILoop 提供了一种指定循环子图的方法。

返回值
指向 ILoop 的指针,可用于为循环添加循环边界层。
另请参阅
ILoop

◆ addLRN()

ILRNLayer * nvinfer1::INetworkDefinition::addLRN ( ITensor input,
int64_t  window,
float  alpha,
float  beta,
float  k 
)
inlinenoexcept

向网络添加 LRN 层。

参数
input图层的输入张量。
window窗口的大小。
alphaLRN 计算的 alpha 值。
betaLRN 计算的 beta 值。
kLRN 计算的 k 值。
另请参阅
ILRNLayer
警告
Int32 张量不是有效的输入张量。
返回值
新的 LRN 层,如果无法创建,则为 nullptr。

◆ addMatrixMultiply()

IMatrixMultiplyLayer * nvinfer1::INetworkDefinition::addMatrixMultiply ( ITensor input0,
MatrixOperation  op0,
ITensor input1,
MatrixOperation  op1 
)
inlinenoexcept

向网络添加矩阵乘法层。

参数
input0第一个输入张量(通常为 A)。
op0应用于 input0 的操作。
input1第二个输入张量(通常为 B)。
op1应用于 input1 的操作。

如果输出是形状张量,则输入是形状张量。

另请参阅
IMatrixMultiplyLayer
警告
Int32 张量不是有效的输入张量。
返回值
新的矩阵乘法层,如果无法创建,则为 nullptr。

◆ addNMS()

INMSLayer * nvinfer1::INetworkDefinition::addNMS ( ITensor boxes,
ITensor scores,
ITensor maxOutputBoxesPerClass 
)
inlinenoexcept

向网络添加非极大值抑制层。

参数
boxes图层的输入框张量。
scores图层的输入分数张量。
maxOutputBoxesPerClass图层的输入 maxOutputBoxesPerClass 张量。
另请参阅
INMSLayer
返回值
新的 NMS 层,如果无法创建,则为 nullptr。

◆ addNonZero()

INonZeroLayer * nvinfer1::INetworkDefinition::addNonZero ( ITensor input)
inlinenoexcept

向网络添加非零层。

参数
input图层的输入张量。
另请参阅
INonZeroLayer
返回值
新的非零层,如果可以创建,则为 nullptr。

◆ addNormalization()

INormalizationLayer * nvinfer1::INetworkDefinition::addNormalization ( ITensor input,
ITensor scale,
ITensor bias,
uint32_t  axesMask 
)
inlinenoexcept

向网络添加归一化层。

参数
input图层的输入张量。
scale用于缩放归一化输出的比例张量。
bias用于缩放归一化输出的偏置张量。
axesMask在其上执行均值计算的轴。位掩码 axesMask 中位置 i 的位对应于结果的显式维度 i。例如,最低有效位对应于第一个显式维度,下一个最低有效位对应于第二个显式维度。

归一化层通过对指定 axesMask 上的张量 input 执行归一化来工作。然后,结果通过与 scale 相乘并加上 bias 来缩放。

scalebias 的形状应相同,并且必须具有相同的秩,并且可单向广播到 input 的形状。

另请参阅
INormalizationLayer
返回值
新的归一化层,如果无法创建,则为 nullptr。

◆ addOneHot()

IOneHotLayer * nvinfer1::INetworkDefinition::addOneHot ( ITensor indices,
ITensor values,
ITensor depth,
int32_t  axis 
)
inlinenoexcept

向网络添加 OneHot 层。

参数
indices- 包含应设置 on_value 的索引的张量。
values- 由 [off_value, on_value] 组成的 2 元素张量。
depth- 包含添加的 one-hot 维度的宽度的形状张量。
axis- 添加 one-hot 编码的轴。
另请参阅
IOneHotLayer
返回值
新的 OneHot 层,如果无法创建,则为 nullptr。

◆ addPaddingNd()

IPaddingLayer * nvinfer1::INetworkDefinition::addPaddingNd ( ITensor input,
Dims const &  prePadding,
Dims const &  postPadding 
)
inlinenoexcept

向网络添加填充层。当前仅支持 2D 填充。

参数
input图层的输入张量。
prePadding要应用于张量开头的填充。
postPadding要应用于张量末尾的填充。
另请参阅
IPaddingLayer
返回值
新的填充层,如果无法创建,则为 nullptr。

◆ addParametricReLU()

IParametricReLULayer * nvinfer1::INetworkDefinition::addParametricReLU ( ITensor input,
ITensor slope 
)
inlinenoexcept

向网络添加参数化 ReLU 层。

参数
input图层的输入张量。
slope图层的斜率张量。此张量应可单向广播到输入张量。
另请参阅
IParametricReLULayer
警告
类型为 Int32、Int64、Bool 或 UInt8 的张量不允许作为输入。
返回值
新的参数化 ReLU 层,如果无法创建,则为 nullptr。

◆ addPluginV2()

TRT_DEPRECATED IPluginV2Layer * nvinfer1::INetworkDefinition::addPluginV2 ( ITensor *const *  inputs,
int32_t  nbInputs,
IPluginV2 plugin 
)
inlinenoexcept

使用 IPluginV2 接口向网络添加插件层。

参数
inputs图层的输入张量。
nbInputs输入张量的数量。
plugin图层插件。
另请参阅
IPluginV2Layer
警告
仅当使用 IPluginV2DynamicExtIPluginV2IOExt 插件时,才支持维度通配符。
Int32 张量不是有效的输入张量。
返回值
新的插件层,如果无法创建,则为 nullptr。
已弃用
在 TensorRT 10.8 中已弃用。被 addPluginV3 取代。

◆ addPluginV3()

IPluginV3Layer * nvinfer1::INetworkDefinition::addPluginV3 ( ITensor *const *  inputs,
int32_t  nbInputs,
ITensor *const *  shapeInputs,
int32_t  nbShapeInputs,
IPluginV3 plugin 
)
inlinenoexcept

向网络添加实现 IPluginV3 接口的插件层。

参数
inputs图层的输入张量。
nbInputs输入张量的数量。
shapeInputs图层的形状张量输入。
nbShapeInputs形状张量输入的数量。
plugin图层插件。
另请参阅
IPluginV3Layer
返回值
新的插件层,如果无法创建,则为 nullptr。

◆ addPoolingNd()

IPoolingLayer * nvinfer1::INetworkDefinition::addPoolingNd ( ITensor input,
PoolingType  type,
Dims const &  windowSize 
)
inlinenoexcept

向网络添加多维池化层。

参数
input图层的输入张量。
type要应用的池化类型。
windowSize池化窗口的大小。
另请参阅
IPoolingLayer PoolingType
警告
Int32 张量不是有效的输入张量。
仅支持 2D 或 3D 池化。
返回值
新的池化层,如果无法创建,则为 nullptr。

◆ addQuantize() [1/2]

TRT_DEPRECATED IQuantizeLayer * nvinfer1::INetworkDefinition::addQuantize ( ITensor input,
ITensor scale 
)
inlinenoexcept

向网络添加量化层。

参数
input要反量化的输入张量。
scale具有比例值的张量。
另请参阅
IQuantizeLayer

input 张量数据类型必须是 DataType::kFLOAT/DataType::kHALF。scale 张量数据类型必须是 DataType::kFLOAT。以 scale 张量结尾的子图必须是构建时常量。

返回值
新的量化层,如果无法创建,则为 nullptr。
已弃用
在 TensorRT 9.0 中已弃用。被三参数 addQuantize 取代。

◆ addQuantize() [2/2]

IQuantizeLayer * nvinfer1::INetworkDefinition::addQuantize ( ITensor input,
ITensor scale,
DataType  outputType 
)
inlinenoexcept

向网络添加量化层。

参数
input要反量化的输入张量。
scale具有比例值的张量。
另请参阅
IQuantizeLayer

input 张量数据类型必须是 DataType::kFLOAT/DataType::kHALF/DataType::kBF16。scale 张量数据类型默认为 DataType::kFLOAT。对于强类型网络,它必须与输入具有相同的数据类型。以 scale 张量结尾的子图必须是构建时常量。outputType 输出张量数据类型,必须是 DataType::kINT8 (默认), DataType::kFP8DataType::kINT4。后续使用 setToType 或 setOutputType 设置输出类型的调用必须保持一致。

返回值
新的量化层,如果无法创建,则为 nullptr。

◆ addRaggedSoftMax()

IRaggedSoftMaxLayer * nvinfer1::INetworkDefinition::addRaggedSoftMax ( ITensor input,
ITensor bounds 
)
inlinenoexcept

向网络添加 RaggedSoftMax 层。

参数
inputZxS 输入张量。
boundsZx1 bounds 张量。
另请参阅
IRaggedSoftMaxLayer
警告
bounds 张量的最后一个维度不能是通配符。
Int32 张量不是有效的输入张量。
输入张量和 bounds 张量应该是 3D 张量。
返回值
新的 RaggedSoftMax 层,如果无法创建则为 nullptr。

◆ addReduce()

IReduceLayer * nvinfer1::INetworkDefinition::addReduce ( ITensor input,
ReduceOperation  operation,
uint32_t  reduceAxes,
bool  keepDimensions 
)
inlinenoexcept

向网络添加一个 reduce 层。

参数
input图层的输入张量。
operation要执行的归约运算。
reduceAxes缩减维度。位掩码 reduceAxes 中位置 i 的位对应于结果的显式维度 i。例如,最低有效位对应于第一个显式维度,次低有效位对应于第二个显式维度。
keepDimensions一个布尔值,指定是否在层的输出中保留缩减的维度。

reduce 层的工作原理是执行 operation 指定的操作,以在 reduceAxes 指定的轴上缩减张量 input

另请参阅
IReduceLayer
警告
如果输出是 Int32 或 Int64 形状张量,则不支持 ReduceOperation::kAVG
返回值
新的 reduce 层,如果无法创建则为 nullptr。

◆ addResize()

IResizeLayer * nvinfer1::INetworkDefinition::addResize ( ITensor input)
inlinenoexcept

向网络添加一个 resize 层。

参数
input图层的输入张量。
另请参阅
IResizeLayer
警告
Int32 张量不是有效的输入张量。
返回值
新的 resize 层,如果无法创建则为 nullptr。

◆ addReverseSequence()

IReverseSequenceLayer * nvinfer1::INetworkDefinition::addReverseSequence ( ITensor input,
ITensor sequenceLens 
)
inlinenoexcept

向网络添加一个 ReverseSequence 层。

参数
input该层的输入张量。秩必须 >= 2。
sequenceLens1D 张量,指定批次中要反转的序列的长度。sequenceLens 张量的长度必须等于输入张量中由 batchAxis 指定的维度的大小。
另请参阅
IReverseSequenceLayer
返回值
新的 ReverseSequence 层,如果无法创建则为 nullptr。

◆ addScale()

IScaleLayer * nvinfer1::INetworkDefinition::addScale ( ITensor input,
ScaleMode  mode,
Weights  shift,
Weights  scale,
Weights  power 
)
inlinenoexcept

向网络添加一个 Scale 层。

参数
input该层的输入张量。此张量必须至少有 4 个维度。
mode缩放模式。
shiftshift 值。
scalescale 值。
powerpower 值。

如果权重可用,则权重的大小取决于 ScaleMode。对于 ScaleMode::kUNIFORM,权重数等于 1。对于 ScaleMode::kCHANNEL,权重数等于通道维度。对于 ScaleMode::kELEMENTWISE,权重数等于输入的最后三个维度的乘积。

另请参阅
addScaleNd
IScaleLayer
警告
Int32 张量不是有效的输入张量。
返回值
新的 Scale 层,如果无法创建则为 nullptr。

◆ addScaleNd()

IScaleLayer * nvinfer1::INetworkDefinition::addScaleNd ( ITensor input,
ScaleMode  mode,
Weights  shift,
Weights  scale,
Weights  power,
int32_t  channelAxis 
)
inlinenoexcept

向网络添加一个多维 scale 层。

参数
input图层的输入张量。
mode缩放模式。
shiftshift 值。
scalescale 值。
powerpower 值。
channelAxis通道轴。

如果权重可用,则权重的大小取决于 ScaleMode。对于 ScaleMode::kUNIFORM,权重数等于 1。对于 ScaleMode::kCHANNEL,权重数等于通道维度。对于 ScaleMode::kELEMENTWISE,权重数等于 channelAxis 及之后所有输入维度的乘积。

例如,如果输入维度为 [A,B,C,D,E,F],并且 channelAxis=2:对于 ScaleMode::kUNIFORM,权重数等于 1。对于 ScaleMode::kCHANNEL,权重数为 C。对于 ScaleMode::kELEMENTWISE,权重数为 C*D*E*F。

channelAxis 也可以使用 setChannelAxis() 显式设置。

另请参阅
IScaleLayer
setChannelAxis()
警告
Int32 张量不是有效的输入张量。
仅支持 2D 或 3D scale。
返回值
新的 Scale 层,如果无法创建则为 nullptr。

◆ addScatter()

IScatterLayer * nvinfer1::INetworkDefinition::addScatter ( ITensor data,
ITensor indices,
ITensor updates,
ScatterMode  mode 
)
inlinenoexcept

向网络添加一个 Scatter 层,并指定模式和 axis=0。

参数
data要使用附加值更新的输入张量。
indices要更新的元素的索引。
updates用于更新的值。
modescatter 模式。
另请参阅
IScatterLayer

indices 张量数据类型必须是 DataType::kINT32updates 张量数据类型必须与 data 相同

返回值
新的 Scatter 层,如果无法创建则为 nullptr。

◆ addSelect()

ISelectLayer * nvinfer1::INetworkDefinition::addSelect ( ITensor condition,
ITensor thenInput,
ITensor elseInput 
)
inlinenoexcept

向网络添加一个 select 层。

参数
condition该层的条件张量。必须具有 DataType::kBOOL 类型。
thenInput该层的 "then" 输入张量。
elseInput该层的 "else" 输入张量。

所有三个输入张量必须具有相同的秩,并且沿每个轴必须具有相同的长度或长度为 1。如果长度为 1,则张量沿该轴广播。输出张量具有应用广播规则后的输入维度。例如,给定

条件的维度:[1,1,5,9] thenInput 的维度:[1,1,5,9] elseInput 的维度:[1,3,1,9]

输出维度为 [1,3,5,9],输出内容由以下定义

 output[0,i,j,k] = condition[0,0,j,k] ? thenInput[0,0,j,k] : elseInput[0,i,0,k]

如果任何输入是空张量,则输出维度不一定inputs维度的最大值。例如,如果在前面的示例中,将 5 更改为 0

条件的维度:[1,1,0,9] thenInput 的维度:[1,1,0,9] elseInput 的维度:[1,3,1,9]

则输出维度为 [1,3,0,9]。

如果输出是形状张量,则输入是形状张量。

另请参阅
ISelectLayer
返回值
新的 select 层,如果无法创建则为 nullptr。

◆ addShape()

IShapeLayer * nvinfer1::INetworkDefinition::addShape ( ITensor input)
inlinenoexcept

向网络添加一个 shape 层。

参数
input图层的输入张量。
另请参阅
IShapeLayer
警告
仅当 hasImplicitBatchDimensions 为 false 时才支持 addShape。
返回值
新的 shape 层,如果无法创建则为 nullptr。

◆ addShuffle()

IShuffleLayer * nvinfer1::INetworkDefinition::addShuffle ( ITensor input)
inlinenoexcept

向网络添加一个 shuffle 层。

参数
input图层的输入张量。
另请参阅
IShuffleLayer
返回值
新的 shuffle 层,如果无法创建则为 nullptr。

◆ addSlice()

ISliceLayer * nvinfer1::INetworkDefinition::addSlice ( ITensor input,
Dims const &  start,
Dims const &  size,
Dims const &  stride 
)
inlinenoexcept

向网络添加一个 slice 层。

参数
input图层的输入张量。
start起始偏移量
size输出维度
stride切片步幅

允许正数、负数、零步幅值以及它们在不同维度中的组合。

另请参阅
ISliceLayer
返回值
新的 slice 层,如果无法创建则为 nullptr。

◆ addSoftMax()

ISoftMaxLayer * nvinfer1::INetworkDefinition::addSoftMax ( ITensor input)
inlinenoexcept

向网络添加一个 SoftMax 层。

另请参阅
ISoftMaxLayer
警告
Int32 张量不是有效的输入张量。
返回值
新的 SoftMax 层,如果无法创建则为 nullptr。

◆ addSqueeze()

ISqueezeLayer * nvinfer1::INetworkDefinition::addSqueeze ( ITensor input,
ITensor axes 
)
inlinenoexcept

向网络添加一个 squeeze 层。

参数
input图层的输入张量。
axes要移除单位维度的轴。
另请参阅
ISqueezeLayer

轴必须可解析为常量 Int32 或 Int64 1D 形状张量。axes 中的值必须是唯一的,并且在 [-r, r-1] 范围内,其中 r 是输入张量的秩。对于每个轴值,输入张量中的相应维度必须为 1。

返回值
新的 Squeeze 层,如果无法创建则为 nullptr。

◆ addTopK()

ITopKLayer * nvinfer1::INetworkDefinition::addTopK ( ITensor input,
TopKOperation  op,
int32_t  k,
uint32_t  reduceAxes 
)
inlinenoexcept

向网络添加一个 TopK 层。

TopK 层有两个相同维度的输出。第一个包含数据值,第二个包含值的索引位置。输出值已排序,对于 operation kMAX,从最大到最小排序,对于 operation kMIN,从最小到最大排序。

当前仅支持 K 值高达 3840。

参数
input图层的输入张量。
op要执行的操作。
k要保留的元素数量。对于动态 k,请使用 setInput() 方法传入 k 作为张量,这将覆盖此处在计算中传递的静态 k 值。
reduceAxes缩减维度。位掩码 reduceAxes 中位置 i 的位对应于结果的显式维度 i。例如,最低有效位对应于第一个显式维度,次低有效位对应于第二个显式维度。

当前 reduceAxes 必须只指定一个维度,并且它必须是最后四个维度之一。

另请参阅
ITopKLayer
返回值
新的 TopK 层,如果无法创建则为 nullptr。

◆ addUnary()

IUnaryLayer * nvinfer1::INetworkDefinition::addUnary ( ITensor input,
UnaryOperation  operation 
)
inlinenoexcept

向网络添加一个 unary 层。

参数
input图层的输入张量。
operation要应用的操作。
另请参阅
IUnaryLayer

通常,输入必须具有浮点类型(或 kINT8 作为量化浮点数),但以下操作除外

  • kSIGN 接受浮点或 Int32 张量。
  • kNOT 需要 Bool 张量。

如果输出是形状张量,则输入是形状张量。

返回值
新的 unary 层,如果无法创建则为 nullptr

◆ addUnsqueeze()

IUnsqueezeLayer * nvinfer1::INetworkDefinition::addUnsqueeze ( ITensor input,
ITensor axes 
)
inlinenoexcept

向网络添加一个 unsqueeze 层。

参数
input图层的输入张量。
axes要添加单位维度的轴。
另请参阅
IUnsqueezeLauyer

轴必须可解析为常量 Int32 或 Int64 形状张量。axes 中的值必须是唯一的,并且在 [-r_final, r_final-1] 范围内,其中 r_final 是 rank(input) 和 len(axes) 的和。

r_final 必须小于 Dims::MAX_DIMS

返回值
新的 Unsqueeze 层,如果无法创建则为 nullptr

◆ areWeightsMarkedRefittable()

bool nvinfer1::INetworkDefinition::areWeightsMarkedRefittable ( char const *  name) const
inlinenoexcept

权重是否已标记为可重装配。

参数
name要检查的权重的名称。
返回值
如果权重标记为可重装配,则为 True;如果权重不存在或标记为不可重装配,则为 false。

◆ getBuilder()

virtual IBuilder & nvinfer1::INetworkDefinition::getBuilder ( ) const
inlinevirtualnoexcept

返回从中创建此 INetworkDefinition 的构建器。

另请参阅
IBuilder::createNetworkV2
返回值
构建器

◆ getErrorRecorder()

IErrorRecorder * nvinfer1::INetworkDefinition::getErrorRecorder ( ) const
inlinenoexcept

获取分配给此接口的 ErrorRecorder。

检索给定类别的已分配错误记录器对象。如果尚未调用 setErrorRecorder,则将返回 nullptr。

返回值
指向已注册的 IErrorRecorder 对象的指针。
另请参阅
setErrorRecorder()

◆ getFlag()

bool nvinfer1::INetworkDefinition::getFlag ( NetworkDefinitionCreationFlag  networkDefinitionCreationFlag) const
inlinenoexcept

如果设置了网络定义创建标志,则返回 true。

另请参阅
getFlags()
返回值
如果设置了标志,则为 True;如果未设置,则为 false。

◆ getFlags()

NetworkDefinitionCreationFlags nvinfer1::INetworkDefinition::getFlags ( ) const
inlinenoexcept

获取此网络定义对象的网络定义创建标志。默认为 0。

返回值
网络定义创建选项作为位掩码。

◆ getInput()

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

获取给定索引指定的输入张量。

参数
index输入张量的索引。
返回值
输入张量,如果索引超出范围,则为 nullptr。
注意
添加输入会使此处的索引失效
另请参阅
getNbInputs()

◆ getLayer()

ILayer * nvinfer1::INetworkDefinition::getLayer ( int32_t  index) const
inlinenoexcept

获取给定索引指定的层。

参数
index层的索引。
返回值
层,如果索引超出范围,则为 nullptr。
另请参阅
getNbLayers()

◆ getName()

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

返回与网络关联的名称。

getName() 指向的内存由 INetworkDefinition 对象拥有。

另请参阅
INetworkDefinition::setName()
返回值
表示网络名称的空终止 C 样式字符串。

◆ getNbInputs()

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

获取网络中的输入数量。

返回值
网络中的输入数量。
另请参阅
getInput()

◆ getNbLayers()

int32_t nvinfer1::INetworkDefinition::getNbLayers ( ) const
inlinenoexcept

获取网络中的层数。

返回值
网络中的层数。
另请参阅
getLayer()

◆ getNbOutputs()

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

获取网络中的输出数量。

输出包括由 markOutput 或 markOutputForShapes 标记的输出。

返回值
网络中的输出数量。
另请参阅
getOutput()

◆ getOutput()

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

获取给定索引指定的输出张量。

参数
index输出张量的索引。
返回值
输出张量,如果索引超出范围,则为 nullptr。
注意
添加输入会使此处的索引失效
另请参阅
getNbOutputs()

◆ hasImplicitBatchDimension()

TRT_DEPRECATED bool nvinfer1::INetworkDefinition::hasImplicitBatchDimension ( ) const
inlinenoexcept

查询网络是否使用隐式批次维度创建。

返回值
始终为 false,因为 TensorRT 10.0 不支持隐式批次维度。
另请参阅
createNetworkV2
已弃用
在 TensorRT 10.0 中已弃用。自 TensorRT 10.0 起,不支持隐式批次。

◆ isDebugTensor()

bool nvinfer1::INetworkDefinition::isDebugTensor ( nvinfer1::ITensor const &  tensor) const
inlinenoexcept

检查张量是否标记为调试张量。

返回值
如果张量标记为调试张量,则为 true;否则为 false。

◆ markDebug()

bool nvinfer1::INetworkDefinition::markDebug ( ITensor tensor)
inlinenoexcept

将张量标记为调试张量。

调试张量可以在运行时选择性地发出。请注意,需要张量名称才能在运行时指定调试张量。

参数
tensor要标记为调试的张量
返回值
如果张量成功标记(或已标记),则为 True;否则为 false。
另请参阅
unmarkDebug(), IExecutionContext::setDebugListener(), ITensor::setName()

◆ markOutput()

void nvinfer1::INetworkDefinition::markOutput ( ITensor tensor)
inlinenoexcept

将张量标记为网络输出。

参数
tensor要标记为输出张量的张量。
警告
将网络输入标记为输出是错误的。
ILoopIIfConditional 内的张量标记为输出是错误的。

◆ markOutputForShapes()

bool nvinfer1::INetworkDefinition::markOutputForShapes ( ITensor tensor)
inlinenoexcept

使 IExecutionContext::getShapeBinding 可以计算张量的值。

返回值
如果成功,则为 True;如果张量已标记为输出,则为 false。

张量类型必须为 DataType::kINT32,并且维度不得超过一个。

警告
张量的维度必须可以在构建时确定为常量。
将网络输入标记为形状输出是错误的。

◆ markWeightsRefittable()

bool nvinfer1::INetworkDefinition::markWeightsRefittable ( char const *  name)
inlinenoexcept

当构建器标志 kREFIT_INDIVIDUAL 设置时,将权重标记为可重装配。

参数
name权重的名称。
返回值
如果权重已成功标记为可重装配,则为 True;如果权重不存在或无法重装配,则为 false。

◆ removeTensor()

void nvinfer1::INetworkDefinition::removeTensor ( ITensor tensor)
inlinenoexcept

从网络定义中删除张量。

参数
tensor要删除的张量

删除作为层输入或输出的张量是非法的。如果使用此类张量调用此方法,则会在日志中发出警告,并且该调用将被忽略。其预期用途是在使用 Layer::setInput() 连接两个网络后删除分离的张量。

◆ setErrorRecorder()

void nvinfer1::INetworkDefinition::setErrorRecorder ( IErrorRecorder recorder)
inlinenoexcept

为此接口设置 ErrorRecorder。

将 ErrorRecorder 分配给此接口。ErrorRecorder 将跟踪执行期间的所有错误。此函数将至少调用一次已注册 ErrorRecorder 的 incRefCount。将 recorder 设置为 nullptr 会取消注册接口的记录器,如果已注册记录器,则会导致调用 decRefCount。

如果未设置错误记录器,则消息将发送到全局日志流。

参数
recorder要向此接口注册的错误记录器。
另请参阅
getErrorRecorder()

◆ setName()

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

设置网络的名称。

参数
name要分配给此网络的名称。

设置网络的名称,以便将其与构建的引擎关联。name 必须是空终止的 C 样式字符串。TensorRT 不使用此字符串,只是将其存储为引擎的一部分,以便可以在运行时检索它。默认情况下,将生成构建器唯一的名称。

此方法复制名称字符串。

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

◆ setWeightsName()

bool nvinfer1::INetworkDefinition::setWeightsName ( Weights  weights,
char const *  name 
)
inlinenoexcept

将名称与给定权重的当前所有用途关联起来。

必须在网络中使用 Weights 后设置名称。查找是关联的。该名称适用于所有具有匹配类型、值指针和计数的 Weights。如果网络中存在具有匹配值指针但类型或计数不同的 Weights,则会发出错误消息,拒绝该名称,并返回 false。如果该名称已用于其他权重,则返回 false。nullptr 会导致权重变为未命名,即清除任何以前的名称。

参数
weights要命名的权重。
name要与权重关联的名称。
返回值
成功时为 true。
警告
字符串名称必须以 null 结尾,并且最多为 4096 字节,包括终止符。

◆ unmarkDebug()

bool nvinfer1::INetworkDefinition::unmarkDebug ( ITensor tensor)
inlinenoexcept

取消将张量标记为调试张量。

移除将张量标记为调试张量的标记。

参数
tensor要取消标记为调试的张量。
返回值
如果张量成功取消标记(或已取消标记),则为 True;否则为 false。
另请参阅
markDebug(), IExecutionContext::setDebugListener()

◆ unmarkOutput()

void nvinfer1::INetworkDefinition::unmarkOutput ( ITensor tensor)
inlinenoexcept

取消将张量标记为网络输出。

参数
tensor要取消标记为输出张量的张量。

参见 markOutput()

◆ unmarkOutputForShapes()

bool nvinfer1::INetworkDefinition::unmarkOutputForShapes ( ITensor tensor)
inlinenoexcept

撤消 markOutputForShapes。

警告
要添加到 shape 的输入不能包含通配符维度值。
返回值
如果成功,则为 True;如果张量未标记为输出,则为 false。

◆ unmarkWeightsRefittable()

bool nvinfer1::INetworkDefinition::unmarkWeightsRefittable ( char const *  name)
inlinenoexcept

当构建器标志 kREFIT_INDIVIDUAL 设置时,取消将权重标记为可重装配。

参数
name权重的名称。
返回值
如果权重已成功标记为不可重装配,则为 True;如果权重不存在,则为 false。

成员数据文档

◆ mImpl

apiv::VNetworkDefinition* nvinfer1::INetworkDefinition::mImpl
protected

此类的文档是从以下文件生成的

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