CANN/ops-math Tile算子文档
Tile
【免费下载链接】ops-math本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-math
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
接口功能:对输入tensor沿着repeats中对每个维度指定的复制次数进行复制。示例: 假设输入Tensor为[[a,b],[c,d],[e,f]],即shape为[3,2],repeats为(2,4),则生成的Tensor的shape为[6,8],值如下所示:
>>> x = torch.tensor([[a,b],[c,d],[e,f]]) >>> x.repeat(2,4) tensor([[a,b,a,b,a,b,a,b], [c,d,c,d,c,d,c,d], [e,f,e,f,e,f,e,f], [a,b,a,b,a,b,a,b], [c,d,c,d,c,d,c,d], [e,f,e,f,e,f,e,f], ])当repeats为(2,4,2)时,即repeats的元素个数大于Tensor中的维度,则输出Tensor等效为如下操作:先将输入Tensor的shape扩张到和repeats个数相同的维度:[1,3,2],而后按照对应维度和repeats的值进行扩张,即输出Tensor的shape为[2,12,4],结果如下:
>>> x.repeat(2,4,2) tensor([[[a,b,a,b], [c,d,c,d], [e,f,e,f], [a,b,a,b], [c,d,c,d], [e,f,e,f], [a,b,a,b], [c,d,c,d], [e,f,e,f], [a,b,a,b], [c,d,c,d], [e,f,e,f]], [[a,b,a,b], [c,d,c,d], [e,f,e,f], [a,b,a,b], [c,d,c,d], [e,f,e,f], [a,b,a,b], [c,d,c,d], [e,f,e,f], [a,b,a,b], [c,d,c,d], [e,f,e,f]]])计算时需要满足以下条件: repeats中参数个数不能少于输入Tensor的维度。 repeats中的值必须大于等于0。
参数说明
| 参数名 | 输入/输出 | 描述 | 使用说明 | 数据类型 | 数据格式 | 维度(shape) | 非连续张量Tensor |
|---|---|---|---|---|---|---|---|
| self | 输入 | - | - | FLOAT、DOUBLE、FLOAT16、COMPLEX64、COMPLEX128、UINT8、INT8、INT16、INT32、INT64、UINT16、UINT32、UINT64、BOOL、BFLOAT16、HIFLOAT8、FLOAT8_E5M2、FLOAT8_E4M3FN | ND | ≤8 | √ |
| repeats | 输入 | - | 表示沿每个维度重复输入tensor的次数,参数个数不大于8, 当前不支持对超过4个维度同时做repeat的场景,详细约束请见约束说明。 | INT64 | - | - | - |
| out | 输出 | - | - | 与self一致 | ND | ≤8 | √ |
约束说明
- 确定性计算:
- 默认确定性实现。
调用示例
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_repeat | 通过aclnnRepeat接口方式调用Tile算子。 |
| 图模式调用 | test_geir_tile | 通过算子IR构图方式调用Tile算子。 |
【免费下载链接】ops-math本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-math
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
