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

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_D/输出shape的深度D<=50outputSize\_D / 输出shape的深度D <= 50 outputSize_H/输出shape的高度H<=50outputSize\_H / 输出shape的高度H <= 50 outputSize_W/输出shape的宽度W<=50outputSize\_W / 输出shape的宽度W <=50
  • 参数inputSize、outputSize、scalesD、scalesH、scalesW需要满足如下约束:

    outputSize_D=floor(inputSize_DscalesD)outputSize\_D = floor(inputSize\_D * scalesD) outputSize_H=floor(inputSize_HscalesH)outputSize\_H = floor(inputSize\_H * scalesH) outputSize_W=floor(inputSize_WscalesW)outputSize\_W = floor(inputSize\_W * scalesW)
  • 确定性计算:

    • aclnnUpsampleNearestExact3dBackward默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。

调用示例

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

[object Object]