RepeatOperation
产品支持情况
硬件型号  | 
是否支持  | 
特殊说明  | 
|---|---|---|
√  | 
-  | 
|
√  | 
-  | 
|
√  | 
-  | 
|
√  | 
-  | 
|
√  | 
不支持输入输出tensor数据类型为bf16的场景。  | 
功能
将输入tensor的Shape,根据参数中multiples上的信息扩展指定倍数。
定义
1 2 3 4  | struct RepeatParam { SVector<int64_t> multiples; uint8_t rsv[8] = {0}; };  | 
参数列表
成员名称  | 
类型  | 
默认值  | 
描述  | 
|---|---|---|---|
multiples  | 
SVector<int64_t>  | 
-  | 
输入tensor每个维度上扩展的倍数,支持对输入tensor的广播。 支持在不超过两个维度上进行扩展。 multiples的维度应小于等于8,且大于或等于输入tensor的维度,每一个元素要求都大于0。  | 
rsv[8]  | 
uint8_t  | 
{0}  | 
预留参数。  | 
输入
参数  | 
维度  | 
数据类型  | 
格式  | 
描述  | 
|---|---|---|---|---|
x  | 
[x_dim_0,x_dim_1,... ,x_dim_n]  | 
float16/bf16  | 
ND  | 
输入tensor。  | 
输出
参数  | 
维度  | 
数据类型  | 
格式  | 
描述  | 
|---|---|---|---|---|
y  | 
[y_dim_0,y_dim_1,... ,y_dim_n]  | 
float16/bf16  | 
ND  | 
输出tensor。和输入的数据类型一致。  | 
规格约束
- 输出y的维度和multiples维度一致,每个维度大小为输入x广播到multiples维度后和multiples对应维度的乘积。
 - 输入tensor中shape大于1且需要扩展的维度数加输入tensor的维度数需要小于等于8。
 
功能列表
- 当multiples的长度与输入tensor的维度相同时
输出tensor的每个维度大小为输入tensor的相应维度大小与参数multiples对应位置的乘积。
例如输入一个tensor的shape为[1, 2, 3],参数multiples为{1, 2, 2}。此时的输出tensor的shape为[1, 4, 6]。
- inTensor:
[[[1,2,3] [4,5,6]]]
通过repeat之后为
 - outTensor:
[[[1,2,3,1,2,3], [4,5,6,4,5,6], [1,2,3,1,2,3], [4,5,6,4,5,6]]]
 
 - inTensor:
 - 当multiples的长度大于输入tensor的维度时
输出tensor的每个维度大小为输入tensor维度广播到参数multiples长度后与其对应位置的乘积。
例如输入一个tensor的shape为[2, 3],参数multiples为{1, 2, 2}。此时的输出tensor的shape为[1, 4, 6]。
- inTensor:
[[1,2,3] [4,5,6]]
通过repeat之后为
 - outTensor:
[[[1,2,3,1,2,3], [4,5,6,4,5,6], [1,2,3,1,2,3], [4,5,6,4,5,6]]]
 
 - inTensor: