[object Object]

[object Object][object Object]undefined
[object Object]
  • API description: Performs backpropagation of . If the shape of the input tensor is (N, C, H, W), then the shape of the output tensor is (N, C, inputSize[2], inputSize[3]).

  • Formula: For a two-dimensional interpolation point (N,C,h,w)(N, C, h, w), the interpolation gradInput(N,C,h,w)gradInput(N, C, h, w) may be represented as:

    gradInput(N,C,h,w)=i=03j=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}

    Where,

    • i and j are index variables of W(i,j)W(i, j).
    • f(hi,wj)f(h_i, w_j) is the pixel value of gradOut in (hi,wj)(h_i, w_j).
    • W(i,j)W(i, j) is the weight of the bicubic anti-aliasing interpolation, which is defined as follows:W(d)={(a+2)d3(a+3)d2+1d1ad35ad2+8ad4a1<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} Where,
      • a=0.75a=-0.75
      • d=(h,w)(hi,wj)d = |(h, w) - (h_i, w_j)|
[object Object]

Each operator has calls. First, aclnnUpsampleBicubic2dBackwardGetWorkspaceSize is called to obtain the input parameters and compute the required workspace size based on the process. Then, aclnnUpsampleBicubic2dBackward is called to perform computation.

[object Object]
[object Object]
[object Object]
  • Parameters:

    [object Object]
    • [object Object]Atlas training products[object Object]:

      • The data types of [object Object] and [object Object] do not support BFLOAT16.
      • The data formats of [object Object] and [object Object] do not support NHWC.
    • [object Object]Atlas A2 training products/Atlas A2 inference products[object Object] and [object Object]Atlas A3 training products/Atlas A3 inference products[object Object]:

      The data formats of [object Object] and [object Object] do not support NHWC.

  • Returns:

    aclnnStatus: status code. For details, see .

    The first-phase API implements input parameter verification. The following errors may be thrown.

    [object Object]
[object Object]
  • Parameters:

    [object Object]
  • Returns:

    aclnnStatus: status code. For details, see .

[object Object]
  • Either the H and W axes of the outputSize parameter or the scalesH and scalesW parameters can be used.

    • When alignCorners is set to True:
      • If the value of the corresponding axis of outputSize is equal to 1, the value of the corresponding axis of scales is 0.
      • In other cases, the values of the corresponding axes in the input parameters inputSize and outputSize are used, and scales=(inputSize1)/(outputSize1)scales = (inputSize – 1)/(outputSize – 1).
    • If alignCorners is set to False:
      • If the value of scalesH or scalesW is less than or equal to 0, the value of the corresponding axis in outputSize is used, that is, scales=(inputSize/outputSize)scales = (inputSize/outputSize).
      • If the value of scalesH or scalesW is greater than 0, the value of scalesH or scalesW is used. That is, the value of the corresponding axis of outputSize is floor(inputSize_HscalesH)floor(inputSize\_H * scalesH) or floor(inputSize_WscalesW)floor(inputSize\_W * scalesW).
  • Deterministic computing:

    aclnnUpsampleBicubic2dBackward defaults to a non-deterministic implementation. You can call aclrtCtxSetSysParamOpt to enable deterministic computing. A deterministic implementation must meet the following conditions:

    • inputSize[3] > 130000
    • scaleH >=50
    • scaleW >=50 && inputSize[0] * inputSize[1] * inputSize[2] > inputSize[3] * 0.5
    • scaleH < 0.02 && scaleW < 0.02 && inputSize[0] * inputSize[1] * inputSize[2] > inputSize[3] * 10000
[object Object]

The following example is for reference only. For details, see .

[object Object]