TensorRT 10.8.0
nvinfer1::IFillLayer 类参考

根据指定的模式生成张量。 更多...

#include <NvInfer.h>

nvinfer1::IFillLayer 的继承关系图
nvinfer1::ILayer nvinfer1::INoCopy

公共成员函数

void setDimensions (Dims const &dimensions) noexcept
 设置输出张量的维度。 更多...
 
Dims getDimensions () const noexcept
 获取输出张量的维度。 更多...
 
void setOperation (FillOperation op) noexcept
 设置层的填充操作。 更多...
 
FillOperation getOperation () const noexcept
 获取层的填充操作。 更多...
 
void setAlpha (double alpha) noexcept
 设置 alpha 参数。 更多...
 
double getAlpha () const noexcept
 获取 alpha 参数的值。 更多...
 
void setBeta (double beta) noexcept
 设置 beta 参数。 更多...
 
double getBeta () const noexcept
 获取 beta 参数的值。 更多...
 
void setAlphaInt64 (int64_t alpha) noexcept
 使用 int64 数据类型设置 alpha 参数。 更多...
 
int64_t getAlphaInt64 () const noexcept
 获取使用 int64 数据类型的 alpha 参数值。 更多...
 
void setBetaInt64 (int64_t beta) noexcept
 使用 int64 数据类型设置 beta 参数。 更多...
 
int64_t getBetaInt64 () const noexcept
 获取使用 int64 数据类型的 beta 参数值。 更多...
 
bool isAlphaBetaInt64 () const noexcept
 如果 alpha/beta 的类型为 int64,则返回 true;如果类型为 double,则返回 false。 更多...
 
void setToType (DataType toType) noexcept
 设置填充层输出类型。 更多...
 
DataType getToType () const noexcept
 获取填充层输出类型。 更多...
 
void setInput (int32_t index, ITensor &tensor) noexcept
 使用特定的张量替换此层的输入。 更多...
 
- 继承自 nvinfer1::ILayer 的公共成员函数
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 ~IFillLayer () noexcept=default
 
- 继承自 nvinfer1::ILayer 的受保护成员函数
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::VFillLayer * mImpl
 
- 继承自 nvinfer1::ILayer 的受保护属性
apiv::VLayer * mLayer
 

详细描述

根据指定的模式生成张量。

填充层根据 FillMode 指定的模式,生成一个张量,其值从随机分布或索引的仿射函数中抽取。

当最初将 IFillLayer 添加到网络时,其所有参数都是静态的。每个参数都可以通过设置相应的输入来更改为动态。即使输入是 IConstantLayer 的输出,参数也被认为是动态的。每个参数的输入是

  • 0:维度
  • 1:Alpha
  • 2:Beta

参数“维度”描述了输出的形状。如果提供了“维度”输入,则它必须是 Int32 或 Int64 类型的 1D 张量,其长度可通过常量折叠计算得出。

Alpha 和 Beta 的含义取决于模式,如 IFillLayer::setAlpha()IFillLayer::setBeta()IFillLayer::setInput() 中所述。参数 Alpha 和 Beta 必须都是静态的或都是动态的。

如果满足以下限制,IFillLayer 可以生成形状张量

  • FillOperation 为 kLINSPACE。
  • 输出类型为 Int32、Int64 或 Float。
  • 输出的体积在形状张量施加的体积限制之内。
  • 如果输入 0 存在,则输入 0 的值必须可通过常量折叠计算得出。
另请参阅
FillOperation
警告
请勿从此类继承,否则会破坏 API 和 ABI 的向前兼容性。

构造函数 & 析构函数文档

◆ ~IFillLayer()

virtual nvinfer1::IFillLayer::~IFillLayer ( )
protectedvirtualdefaultnoexcept

成员函数文档

◆ getAlpha()

double nvinfer1::IFillLayer::getAlpha ( ) const
inlinenoexcept

获取 alpha 参数的值。

返回值
alpha 的 double 值。

如果第二个输入存在且非空,则此函数返回 -1.0。

另请参阅
setAlpha

◆ getAlphaInt64()

int64_t nvinfer1::IFillLayer::getAlphaInt64 ( ) const
inlinenoexcept

获取使用 int64 数据类型的 alpha 参数值。

返回值
alpha 的 int64 值。

如果第二个输入存在且非空,则此函数返回 -1。

另请参阅
setAlphaInt64

◆ getBeta()

double nvinfer1::IFillLayer::getBeta ( ) const
inlinenoexcept

获取 beta 参数的值。

返回值
beta 的 double 值。

如果第三个输入存在且非空,则此函数返回 -1.0。

另请参阅
setBeta, setBetaInt64

◆ getBetaInt64()

int64_t nvinfer1::IFillLayer::getBetaInt64 ( ) const
inlinenoexcept

获取使用 int64 数据类型的 beta 参数值。

返回值
beta 的 int64 值。

如果第三个输入存在且非空,则此函数返回 -1.0。

另请参阅
setBetaInt64

◆ getDimensions()

Dims nvinfer1::IFillLayer::getDimensions ( ) const
inlinenoexcept

获取输出张量的维度。

返回值
输出张量的维度,或无效的 Dims 结构。

如果第一个输入存在且非空,则此函数返回 nbDims = -1 的 Dims

另请参阅
setDimensions

◆ getOperation()

FillOperation nvinfer1::IFillLayer::getOperation ( ) const
inlinenoexcept

获取层的填充操作。

另请参阅
setOperation(), FillOperation

◆ getToType()

DataType nvinfer1::IFillLayer::getToType ( ) const
inlinenoexcept

获取填充层输出类型。

返回值
在层创建期间或通过 setToType() 设置的 toType 参数。返回值是填充层的输出类型。默认值为 DataType::kFLOAT

◆ isAlphaBetaInt64()

bool nvinfer1::IFillLayer::isAlphaBetaInt64 ( ) const
inlinenoexcept

如果 alpha/beta 的类型为 int64,则返回 true;如果类型为 double,则返回 false。

◆ setAlpha()

void nvinfer1::IFillLayer::setAlpha ( double  alpha)
inlinenoexcept

设置 alpha 参数。

参数
alpha对于每个运算符,含义都不同

操作 | 用法 kLINSPACE | 起始值,默认为 0.0;kRANDOM_UNIFORM | 最小值,默认为 0.0;kRANDOM_NORMAL | 正态分布的均值,默认为 0.0;

如果输入 1 存在,则此方法将其重置为空。

另请参阅
getAlpha, setAlphaInt64

◆ setAlphaInt64()

void nvinfer1::IFillLayer::setAlphaInt64 ( int64_t  alpha)
inlinenoexcept

使用 int64 数据类型设置 alpha 参数。

参数
alpha对于每个运算符,含义都不同

操作 | 用法 kLINSPACE | 起始值,默认为 0;kRANDOM_UNIFORM | 最小值,默认为 0;kRANDOM_NORMAL | 正态分布的均值,默认为 0;

如果之前使用第三个输入创建了此层,则此方法会将该输入重置为空。

另请参阅
getAlphaInt64

◆ setBeta()

void nvinfer1::IFillLayer::setBeta ( double  beta)
inlinenoexcept

设置 beta 参数。

参数
beta对于每个运算符,含义都不同

操作 | 用法 kLINSPACE | delta 值,默认为 1.0;kRANDOM_UNIFORM | 最大值,默认为 1.0;kRANDOM_NORMAL | 正态分布的标准差,默认为 1.0;

如果输入 2 存在,则此方法将其重置为空。

另请参阅
getBeta

◆ setBetaInt64()

void nvinfer1::IFillLayer::setBetaInt64 ( int64_t  beta)
inlinenoexcept

使用 int64 数据类型设置 beta 参数。

参数
beta对于每个运算符,含义都不同

操作 | 用法 kLINSPACE | delta 值,默认为 1;kRANDOM_UNIFORM | 最大值,默认为 1;kRANDOM_NORMAL | 正态分布的标准差,默认为 1;

如果之前使用第三个输入创建了此层,则此方法会将该输入重置为空。

另请参阅
getBetaInt64

◆ setDimensions()

void nvinfer1::IFillLayer::setDimensions ( Dims const &  dimensions)
inlinenoexcept

设置输出张量的维度。

参数
dimensions输出张量的维度。

如果之前使用第一个输入创建了此层,则此方法会将该输入重置为空。

另请参阅
getDimensions

◆ setInput()

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

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

参数
index要设置的输入的索引。
tensor新的输入张量

这三个输入对应于 IFillLayer 的这些 setter

  • 0: setDimensions
  • 1: setAlpha
  • 2: setBeta

以下描述为输入提供了更直观的名称。

kLINSPACE 的索引为

  • 0:Shape,一个 1D 形状张量,指定输出张量的维度。
  • 1:Start,一个标量,指定起始值。
  • 2:Delta,一个 1D 张量,指定每个维度的 delta 值。

kRANDOM_UNIFORM 的索引为

  • 0:Shape,一个 1D 形状张量,指定输出张量的维度。
  • 1:Minimum,一个标量,指定最小随机值。
  • 2:Maximum,一个标量,指定最大随机值。

kRANDOM_NORMAL 的索引为

  • 0:Shape,一个 1D 形状张量,指定输出张量的维度。
  • 1:Mean,一个标量,指定正态分布的均值。
  • 2:Scale,一个标量,指定正态分布的标准差。

使用相应的 setter 会将输入重置为空。

如果输入 1 或 2 中任何一个非空,则两者都必须非空且具有相同的数据类型。

如果为大于或等于 getNbInputs() 的索引调用此函数,则之后 getNbInputs() 返回 index + 1,并且任何缺失的中间输入都设置为空。

◆ setOperation()

void nvinfer1::IFillLayer::setOperation ( FillOperation  op)
inlinenoexcept

设置层的填充操作。

另请参阅
getOperation(), FillOperation

◆ setToType()

void nvinfer1::IFillLayer::setToType ( DataType  toType)
inlinenoexcept

设置填充层输出类型。

参数
toType输出张量的 DataType。

设置填充层的输出类型。有效值为 DataType::kFLOATDataType::kINT32DataType::kINT64。如果网络是强类型的,则必须使用 setToType 来设置输出类型,并且使用 setOutputType 是错误的。否则,传递给 setOutputType 和 setToType 的类型必须相同。

另请参阅
NetworkDefinitionCreationFlag::kSTRONGLY_TYPED

成员数据文档

◆ mImpl

apiv::VFillLayer* nvinfer1::IFillLayer::mImpl
protected

此类文档从以下文件生成

  Copyright © 2024 NVIDIA Corporation
  隐私政策 | 管理我的隐私 | 请勿出售或分享我的数据 | 服务条款 | 无障碍访问 | 公司政策 | 产品安全 | 联系我们