UpsampleNearest3d
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | × |
| Kirin X90 处理器系列产品 | √ |
| Kirin 9030 处理器系列产品 | √ |
功能说明
- 算子功能:对由多个输入通道组成的输入信号应用最近邻插值算法进行上采样。
- 计算公式:
-
核心算法逻辑:
- 将目标图像的每一个点映射回原图,得到一个带小数点的坐标。
- 根据这个浮点数坐标,计算距离最近的原始图像的点,后者的值直接复制给前者。
-
具体计算逻辑:
对于out的某个方向上的点p(x,y,z),映射回原始图像中的点记为q(x',y',z'),则有关系:
x′=min(⌊x∗scales_depth⌋,self_D−1), scales_depth=self_D/outputSize[0]x' = \min(\lfloor x * scales\_depth \rfloor, self\_D - 1) ,\ scales\_depth = self\_D / outputSize[0]
y′=min(⌊y∗scales_height⌋,self_H−1), scales_height=self_H/outputSize[1]y' = \min(\lfloor y * scales\_height \rfloor, self\_H - 1) ,\ scales\_height = self\_H / outputSize[1]
z′=min(⌊z∗scales_width⌋,self_W−1), scales_width=self_W/outputSize[2]z' = \min(\lfloor z * scales\_width \rfloor, self\_W - 1) ,\ scales\_width = self\_W / outputSize[2]
则有以下公式:
V(px,y,z)=V(qx′,y′,z′){V(p_{x,y,z})} = {V(q_{x',y',z'})}
-
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 表示进行上采样的输入张量,对应公式中的`self`。 | FLOAT32、FLOAT16、BFLOAT16 | NCDHW |
| output_size | 属性 | 指定输出空间大小,对应公式中的`outputSize`。size为3,各元素均大于零。表示输出`y`在D、H和W维度上的空间大小。 | LISTINT | - |
| scales | 可选属性 |
|
LISTFLOAT | - |
| y | 输出 | 表示采样后的输出张量,对应公式中的`out`。数据类型和数据格式需与入参`x`的数据类型和数据格式保持一致。 | FLOAT32、FLOAT16、BFLOAT16 | NCDHW |
- Atlas 推理系列产品:输入和输出的数据类型不支持BFLOAT16。
- Kirin X90 处理器系列产品、Kirin 9030 处理器系列产品:不支持BFLOAT16。
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_upsample_nearest1d_v2 | 通过aclnnUpsampleNearest1dV2接口方式调用UpsampleNearest3d算子。 |
| aclnn接口 | test_aclnn_upsample_nearest2d_v2 | 通过aclnnUpsampleNearest2dV2接口方式调用UpsampleNearest3d算子。 |
| aclnn接口 | test_aclnn_upsample_nearest3d | 通过aclnnUpsampleNearest3d接口方式调用UpsampleNearest3d算子。 |
| 图模式 | - | 通过算子IR构图方式调用UpsampleNearest3d算子。 |