MirrorPad
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:以镜像方式填充输入tensor的边界。
-
示例:
输入tensor([[0,1,2]]) paddings([2,2]) 1.mode("REFLECT") 输出为([[2,1,0,1,2,1,0]]) 2.mode("SYMMETRIC") 输出为([[1,0,0,1,2,2,1]])
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行镜像扩充的原始tensor。 | INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, BF16, FLOAT16, FLOAT, DOUBLE, BOOL | ND |
| paddings | 输入 | 扩充的配置。 | INT32、INT64 | ND |
| mode | 属性 | 填充模式,可以是反射"REFLECT"或对称"SYMMETRIC"。 | string | ND |
| y | 输出 | 进行扩充后的tensor。 | INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, BF16, FLOAT16, FLOAT, DOUBLE, BOOL | ND |
-
paddings
paddings的第0维表示对输入x第0维的扩充配置,以此类推。每一行表示对应维度上的填充数量(左/右、前/后、上/下等)。对于每一行[a, b],a表示在该维度的开头填充的元素数,b表示在该维度的末尾填充的元素数。 -
mode
REFLECT模式下,镜像时不会包括边界本身。 SYMMETRIC模式下,镜像时会包含边界本身,示例中可见。
约束说明
paddings的形状需要为[rank, 2],其中rank为输入x的维度数。 对于每一行paddings[i],填充元素数不得超过其对应x[i]的元素数。即在反射模式下,paddings[i][0]和paddings[i][1] <= x[i].length-1;在对称模式下,paddings[i][0]和paddings[i][1] <= x[i].length。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_reflection_pad_1d | 通过aclnnReflectionPad1d接口方式调用REFLECT情况下的mirror_pad算子,填充输入tensor的最后一维。 |
| aclnn调用 | test_aclnn_reflection_pad_2d | 通过aclnnReflectionPad2d接口方式调用REFLECT情况下的mirror_pad算子,填充输入tensor的最后两维。 |
| aclnn调用 | test_aclnn_reflection_pad_3d | 通过aclnnReflectionPad3d接口方式调用REFLECT情况下的mirror_pad算子,填充输入tensor的最后三维。 |