README.md

UpsampleNearest3d

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品
Atlas 训练系列产品 ×
Kirin X90 处理器系列产品
Kirin 9030 处理器系列产品

功能说明

  • 算子功能:对由多个输入通道组成的输入信号应用最近邻插值算法进行上采样。
  • 计算公式:
    • 核心算法逻辑:

      1. 将目标图像的每一个点映射回原图,得到一个带小数点的坐标。
      2. 根据这个浮点数坐标,计算距离最近的原始图像的点,后者的值直接复制给前者。
    • 具体计算逻辑:

      对于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 可选属性
  • 指定沿每个维度的缩放数组,包含3个元素:scale_depth, scale_height, scale_width。
  • 默认为空。
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算子。