将指定位置设置为value值或者生成一个指定Shape的Tensor并填充为value。
Fill 算子的功能是将指定位置设置为 value 值或者生成一个指定 Shape 的 Tensor 并填充为 value。
若 x 里的某元素,其所对应 mask 里同位置元素值为 true 或 1,则 output 该位置元素被设置为 value 值,output 其余位置元素值与 x 相同。支持广播功能。
生成一个由 outDim 指定 shape 的 tensor,所有元素数值均为 value。
struct FillParam { bool withMask = true; SVector<float> value; SVector<int64_t> outDim; }
成员名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
withMask |
bool |
true |
是否Masked Fill。 |
value |
SVector<float> |
[] |
填充的元素,value是一个只含有一个元素的SVector。 |
outDim |
SVector<float> |
[] |
withMask = false时,表示输出tensor的Shape。 |
将由 mask 指定的位置的元素设置为 value 值。
inTensors 数量为 2,不需要指定 outDim。
生成一个由 outDim 指定 Shape 的 Tensor 并将其每个元素填充为 value。
inTensors 数量为 0,需指定 outDim。
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
x |
[dx_0, ..., dx_n] |
float16/int32 |
ND |
仅 withMask 为 true时输入。 |
mask |
[dmask_0, ..., dmask_m] |
int8/bool |
ND |
仅 withMask 为 true 时输入,通过设置某些位置上的数值为 true 或 1,将x相同位置上的数据设置为value值。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
output |
|
|
ND |
输出tensor。 |
a. value.size() == 1。
param.withMask = true param.value = [-1] x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] mask = [[ true, false, true], [false, true, true], [ true, true, false]]
output = [[-1, 2, -1], [ 4, -1, -1], [-1, -1, 9]]
param.withMask = true param.value = [-1] x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] mask = [true, false, true]
output = [[-1, 2, -1], [-1, 5, -1], [-1, 8, -1]]
param.withMask = false param.value = [1] param.outDim = [2, 3]
output = [[1, 1, 1], [1, 1, 1]]