填充 (Fill)

根据输入属性生成输出张量。

属性 (Attributes)

dimensions 输出张量的形状。

operation 填充操作可以是以下之一:

  • LINSPACE 在指定区间内生成均匀间隔的数字。 \(output[a_0,...,a_n] = \alpha + \beta[0,...,n] \cdot [0,...,n]\)

  • RANDOM_UNIFORM 生成一个张量,其随机值从均匀分布中抽取。 \(output[a_0,...,a_n] = random(min = \alpha, max = \beta)\)

  • RANDOM_NORMAL 生成一个张量,其随机值从正态分布中抽取。 \(output[a_0,...,a_n] = normal(mean = \alpha, scale = \beta)\)

alpha 填充操作中使用的参数。默认为 0

beta 填充操作中使用的参数。默认为 1

toType 输出张量的数据类型。默认为 float32

输入 (Input)

input0: 可选张量,类型为 Int32Int64,具有 dimensions

input1: 可选张量,带有 alpha

input2: 可选张量,带有 beta

输出 (Outputs)

output: 类型为 T 的张量。

数据类型 (Data Types)

操作 (Operation)

T

LINSPACE | int32, int64, float32

RANDOM_UNIFORM | float16, float32

RANDOM_NORMAL | float16, float32

形状信息 (Shape Information)

input0 的形状为 \([n]\)

input1 是标量。

input2 如果操作是 LINSPACE,则形状为 \([n]\)。否则为标量。

output 是一个张量,其形状为 \([a_0,...,a_n]\),基于 dimensions 属性。

体积限制 (Volume Limits)

input0output 最多可以有 \(2^{31}-1\) 个元素。

示例 (Examples)

填充 (Fill)
alpha = network.add_input("alpha", dtype=trt.float32, shape=())
beta = network.add_input("beta", dtype=trt.float32, shape=(2,))
layer = network.add_fill(shape=(2, 3), op=trt.FillOperation.LINSPACE)
layer.set_input(1, alpha)
layer.set_input(2, beta)

network.mark_output(layer.get_output(0))
inputs[alpha.name] = np.array([0.0])
inputs[beta.name] = np.array([3.0, 1.0])

outputs[layer.get_output(0).name] = layer.get_output(0).shape
expected[layer.get_output(0).name] = np.array([[0.0, 1.0, 2.0], [3.0, 4.0, 5.0]])

填充随机值 (Fill Random)
alpha = network.add_input("alpha", dtype=trt.float32, shape=())
beta = network.add_input("beta", dtype=trt.float32, shape=())
layer = network.add_fill(shape=(2, 3), op=trt.FillOperation.RANDOM_UNIFORM)
layer.set_input(1, alpha)
layer.set_input(2, beta)

network.mark_output(layer.get_output(0))
inputs[alpha.name] = np.array([2.0])
inputs[beta.name] = np.array([3.0])

outputs[layer.get_output(0).name] = layer.get_output(0).shape
# note: expected values should be in range of [2. ,3.]

C++ API

有关 C++ IFillLayer 算子的更多信息,请参阅 C++ IFillLayer 文档

Python API

有关 Python IFillLayer 算子的更多信息,请参阅 Python IFillLayer 文档