[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 gradOutput 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.5a=-0.5
      • d=(h,w)(hi,wj)d = |(h, w) - (h_i, w_j)|
[object Object]

Each operator has calls. First, aclnnUpsampleBicubic2dAAGradGetWorkspaceSize is called to obtain the workspace size required for computation and the executor that contains the operator computation process. Then, aclnnUpsampleBicubic2dAAGrad is called to perform computation.

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

    [object Object]
  • 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]
  • The shape constraints of [object Object] and [object Object] are as follows:

    • The value of each dimension is less than or equal to 2^20.

    • The N and C axes of [object Object] must be the same as those of [object Object].

    • The memory usage must meet the following requirements:

      (gradOutput_HgradOutput_W+out_Hout_W+gradOutput_Hout_W)NCsizeof(float)<60102410241024(gradOutput\_H * gradOutput\_W + out\_H * out\_W + gradOutput\_H * out\_W) * N * C * sizeof(float) < 60 * 1024 * 1024 * 1024

      Where,

      • N indicates the N axis of the input and output.
      • C indicates the C axis of the input and output.
    • N * C * gradOutput_H < 2^31

  • The upscaling factor for input data must be less than or equal to 50. That is, both outputSize[0]/heightHofoutputshapeoutputSize[0]/height H of output shape and outputSize[1]/widthWofoutputshapeoutputSize[1]/width W of output shape must be less than or equal to 50.

  • 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 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:

    • aclnnUpsampleBicubic2dAAGrad defaults to a deterministic implementation.
[object Object]

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

[object Object]