aclnnGridSampler2DBackward
产品支持情况
功能说明
- 接口功能:的反向传播,完成张量input与张量grid的梯度计算。
- 计算公式:
计算流程:
- 根据grid存储的(x, y)值,计算出映射到input上的坐标,这些坐标和alignCorners、paddingMode有关。
- 根据输入的interpolationMode,选择使用bilinear、nearest不同插值模式计算该坐标周围点分配到梯度的权重值。
- 根据grad存储的梯度值乘上对应点的权重值,计算出最终dx、dgrid的结果。
其中: grad、input、grid、dx、dgrid的尺寸如下:
其中grad、input、grid、dx、dgrid中的N是一致的,grad、input和dx中的C是一致的,input和dx中的、是一致的,grad、grid和dgrid中的、是一致的,grid最后一维大小为2,表示input像素位置信息为(x, y),会将x和y的取值范围归一化到[-1, 1]之间,(-1, 1)表示左上角坐标,(1, -1)表示右下角坐标。
对于超出范围的坐标,会根据paddingMode进行不同处理:
- paddingMode="zeros",表示对越界位置用0填充。
- paddingMode="border",表示对越界位置用边界值填充。
- paddingMode="reflection",表示对越界位置用边界值的对称值填充。
对input采样时,会根据interpolationMode进行不同处理:
- interpolationMode="bilinear",表示取input中(x, y)周围四个坐标的加权平均值。
- interpolationMode="nearest",表示取input中距离(x, y)最近的坐标值。
函数原型
每个算子分为,必须先调用“aclnnGridSampler2DBackwardGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnGridSampler2DBackward”接口执行计算。
[object Object]
[object Object]
aclnnGridSampler2DBackwardGetWorkspaceSize
参数说明:
[object Object][object Object]Atlas 训练系列产品[object Object]:
参数
[object Object]、[object Object]、[object Object]、[object Object]、[object Object]的数据类型不支持BFLOAT16、DOUBLE。
返回值:
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnGridSampler2DBackward
约束说明
- 确定性计算:
- aclnnGridSampler2DBackward默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。确定性实现需同时满足如下条件:
- 输入和输出的数据类型不为DOUBLE。
- 输入和输出的C轴取值小于等于2048。
- aclnnGridSampler2DBackward默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。确定性实现需同时满足如下条件:
调用示例
[object Object]