昇腾社区首页
中文
注册
开发者
下载

aclnnUpsampleNearestExact3dBackward

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:的反向计算。
  • 计算公式:scalesD=outputSize[0]/inputSize[2]scalesD = outputSize[0] / inputSize[2] scalesH=outputSize[1]/inputSize[3]scalesH = outputSize[1] / inputSize[3] scalesW=outputSize[2]/inputSize[4]scalesW = outputSize[2] / inputSize[4] gradInput(N,C,floor(scalesD(D+0.5)),floor(scalesH(H+0.5)),floor(scalesW(W+0.5)))+=gradOutput(N,C,D,H,W)gradInput(N, C, floor ( scalesD * ( D + 0.5 )), floor ( scalesH * ( H + 0.5 )), floor ( scalesW * ( W+ 0.5 ))) += gradOutput( N, C, D, H ,W)

函数原型

每个算子分为,必须先调用“aclnnUpsampleNearestExact3dBackwardGetWorkspaceSize”接口获取入参并根据计算流程计算所需workspace大小,再调用“aclnnUpsampleNearestExact3dBackward”接口执行计算。

[object Object]
[object Object]

aclnnUpsampleNearestExact3dBackwardGetWorkspaceSize

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]

aclnnUpsampleNearestExact3dBackward

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

约束说明

  • 参数[object Object][object Object]的shape约束:
    • 每个维度的取值小于等于2^20。
    • 参数[object Object]的N轴和C轴与[object Object]保持一致。
    • 内存占用需小于60G。内存占用的计算公式如下:NC(gradOut_DgradOut_HgradOut_W+gradInput_DgradInput_HgradInput_W+gradOut_DgradOut_HgradInput_W+gradOut_DgradInput_HgradInput_W)sizeof(float)<60102410241024N * C * (gradOut\_D * gradOut\_H * gradOut\_W + gradInput\_D * gradInput\_H * gradInput\_W + gradOut\_D * gradOut\_H * gradInput\_W + gradOut\_D * gradInput\_H * gradInput\_W) * sizeof(float) < 60 * 1024 * 1024 * 1024 其中:
      • N代表输入和输出的N轴。
      • C代表输入和输出的C轴。
    • N * C * gradOut_D * gradOut_H < 2^31
    • gradInput_W * gradInput_H < 2^31
  • 参数gradOut、gradInput的数据格式不为NCDHW或NDHWC时,输入其他数据格式默认按NCDHW处理。
  • 输入数据缩放场景放大倍数必须小于等于50,即outputSize[0]/输出shape的高度HoutputSize[0]/输出shape的高度HoutputSize[1]/输出shape的宽度WoutputSize[1]/输出shape的宽度W以及outputSize[2]/输出shape的深度DoutputSize[2]/输出shape的深度D必须小于等于50。
  • 参数outputSize与参数scalesD、scalesH、scalesW,在使用时二选一,即:
    • 当入参scalesD、scalesH、scalesW,其中一个参数的值小于等于0时,使用入参outputSize的参数值。
    • 当入参scalesD、scalesH、scalesW的值都大于0时,使用入参scalesD、scalesH、scalesW的参数值,且outputSize=[floor(inputSize_DscalesD)floor(inputSize_HscalesH)floor(inputSize_WscalesW)]outputSize=[floor(inputSize\_D * scalesD),floor(inputSize\_H * scalesH),floor(inputSize\_W * scalesW)]
  • 确定性计算:
    • aclnnUpsampleNearestExact3dBackward默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]