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

aclnnGridSampler3DBackward

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:的反向传播,完成张量input与张量grid的梯度计算。

  • 计算公式:

    • 计算流程:

      1. 根据grid存储的(x, y, z)值,计算出映射到input上的坐标,这些坐标和alignCorners、paddingMode有关。
      2. 坐标根据输入的interpolationMode,选择使用bilinear、nearest、bicubic不同插值模式计算输出值。
      3. 根据grad存储的梯度值乘上对应点的权重值,计算出最终dx、dgrid的结果。
    • 其中:

      grad、input、grid、dx、dgrid的尺寸如下:

      grad:(N,C,Dout,Hout,Wout)input:(N,C,Din,Hin,Win)grid:(N,Dout,Hout,Wout,3)dx:(N,C,Din,Hin,Win)dgrid:(N,Dout,Hout,Wout,3)grad: (N, C, D_{out}, H_{out}, W_{out})\\ input: (N, C, D_{in}, H_{in}, W_{in})\\ grid: (N, D_{out}, H_{out}, W_{out}, 3)\\ dx: (N, C, D_{in}, H_{in}, W_{in})\\ dgrid: (N, D_{out}, H_{out}, W_{out}, 3)

      其中grad、input、grid、dx、dgrid中的N是一致的,grad、input和dx中的C是一致的,input和dx中的DinD_{in}HinH_{in}WinW_{in}是一致的,grad、grid和dgrid中的DoutD_{out}HoutH_{out}WoutW_{out}是一致的,grid最后一维大小为3,表示input像素位置信息为(x, y, z),会将x、y、z的取值范围归一化到[-1, 1]之间。

      • 对于超出范围的坐标,会根据paddingMode进行不同处理:

        • paddingMode="zeros",表示对越界位置用0填充。
        • paddingMode="border",表示对越界位置用边界值填充。
        • paddingMode="reflection",表示对越界位置用边界值的对称值填充。
      • 对input采样时,会根据interpolationMode进行不同处理:

        • interpolationMode="bilinear",表示取input中(x, y, z)周围八个坐标的加权平均值。
        • interpolationMode="nearest",表示取input中距离(x, y, z)最近的坐标值。

函数原型

每个算子分为,必须先调用“aclnnGridSampler3DBackwardGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnGridSampler3DBackward”接口执行计算。

[object Object]
[object Object]

aclnnGridSampler3DBackwardGetWorkspaceSize

  • 参数说明

    [object Object]
    • [object Object]Atlas 训练系列产品[object Object]:

      参数[object Object][object Object][object Object][object Object][object Object]的数据类型不支持BFLOAT16。

  • 返回值

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

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

    [object Object]

aclnnGridSampler3DBackward

  • 参数说明

    [object Object]
  • 返回值

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

约束说明

  • 确定性计算:
    • aclnnGridSampler3DBackward默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。

调用示例

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

[object Object]