README.md

UpsampleBicubic2dAAGrad

产品支持情况

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

功能说明

  • 算子功能:UpsampleBicubic2dAA的反向传播。如果输入张量的shape为(N, C, H, W),则输出张量的shape为(N, C, inputSize[2], inputSize[3])。

  • 计算公式:对于一个二维插值点(N,C,h,w)(N, C, h, w),插值gradInput(N,C,h,w)gradInput(N, C, h, w)可以表示为:

    gradInput(N,C,h,w)=∑i=03∑j=03W(i,j)∗f(hi,wj){gradInput(N, C, h, w)}=\sum_{i=0}^{3}\sum_{j=0}^{3}{W(i, j)}*{f(h_i, w_j)}

    scaleH={(inputSize[2]−1)/(outputSize[0]−1)alignCorners=true1/scalesHalignCorners=false&scalesH>0inputSize[2]/outputSize[0]otherwisescaleH =\begin{cases} (inputSize[2]-1) / (outputSize[0]-1) & alignCorners=true \\ 1 / scalesH & alignCorners=false\&scalesH>0\\ inputSize[2] / outputSize[0] & otherwise \end{cases}

    scaleW={(inputSize[3]−1)/(outputSize[1]−1)alignCorners=true1/scalesWalignCorners=false&scalesW>0inputSize[3]/outputSize[1]otherwisescaleW =\begin{cases} (inputSize[3]-1) / (outputSize[1]-1) & alignCorners=true \\ 1 / scalesW & alignCorners=false\&scalesW>0\\ inputSize[3] / outputSize[1] & otherwise \end{cases}

    其中:

    • alignCorners为true,表示输入和输出张量的角像素点对齐;alignCorners为false,表示输入和输出张量的边像素点对齐。

    • i和j是W(i,j)W(i, j)的索引变量。

    • f(hi,wj)f(h_i, w_j)是gradOutput在(hi,wj)(h_i, w_j)的像素值。

    • W(i,j)W(i, j)是双三次抗锯齿插值的权重,定义为:

      W(d)={(a+2)∣d∣3−(a+3)∣d∣2+1∣d∣≤1a∣d∣3−5a∣d∣2+8a∣d∣−4a1<∣d∣<20otherwiseW(d) =\begin{cases} (a+2)|d|^3-(a+3)|d|^2+1 & |d|\leq1 \\ a|d|^3-5a|d|^2+8a|d|-4a & 1<|d|<2 \\ 0 & otherwise \end{cases}

      其中:

      • a=−0.5a=-0.5
      • d=∣(h,w)−(hi,wj)∣d = |(h, w) - (h_i, w_j)|

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
grad_output 输入 表示反向计算的梯度Tensor,对应公式描述中的`gradOutput`。数据类型与输出`grad_input`的数据类型一致。 FLOAT32、FLOAT16、BFLOAT16 ND
output_size 属性 表示输入`grad_output`在H和W维度上的空间大小,对应公式中的`outputSize`。size为2,且各元素均大于零。 INT64 -
input_size 属性 表示输出`grad_input`分别在N、C、H和W维度上的空间大小,对应公式中的`inputSize`。size为4,且各元素均大于零。 INT64 -
align_corners 可选属性
  • 决定是否对齐角像素点,对应公式中的`alignCorners`。align_corners为true,则输入和输出张量的角像素点会被对齐,否则不对齐。
  • 默认值为false。
BOOL -
scales_h 可选属性
  • 表示输出`grad_input`的height维度乘数,对应公式中的`scalesH`。
  • 默认值为空。
FLOAT32 -
scales_w 可选属性
  • 表示输出`grad_input`的width维度乘数,对应公式中的`scalesW`。
  • 默认值为空。
FLOAT32 -
grad_input 输出 表示采样后的输出张量,对应公式中的`gradInput`。数据类型与输入`grad_output`的数据类型一致。 FLOAT32、FLOAT16、BFLOAT16 ND

约束说明

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_upsample_bicubic2d_aa_grad 通过aclnnUpsampleBicubic2dAAGrad接口方式调用UpsampleBicubic2dAAGrad算子。