昇腾社区首页
中文
注册

RepeatOperation

产品支持情况

硬件型号

是否支持

特殊说明

Atlas A3 推理系列产品/Atlas A3 训练系列产品

-

Atlas A2 训练系列产品/Atlas 800I A2 推理产品

-

Atlas 训练系列产品

-

Atlas 推理系列产品

-

Atlas 200I/500 A2 推理产品

不支持输入输出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]]]
  • 当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]]]