CANN/ops-cv ResizeBilinearV2反向传播算子

📅 2026/7/4 17:50:26 👁️ 阅读次数 📝 编程学习
CANN/ops-cv ResizeBilinearV2反向传播算子

ResizeBilinearV2Grad

【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品×
Atlas 推理系列产品
Atlas 训练系列产品

功能说明

  • 算子功能:ResizeBilinearV2的反向传播。

  • 计算公式:

    假设$grads$中已知四个点$Q_{11}(x_1, y_1), Q_{12}(x_1, y_2), Q_{21}(x_2, y_1), Q_{22}(x_2, y_2)$。

    假设$grads$在输出图中的位置是 $(h', w')$,它映射回原图的浮点坐标为 $(pos_h, pos_w)$。则偏移量定义为:

    $$ d_h = pos_h - x_1 $$

    $$ d_w = pos_w - y_1 $$

    对应的梯度累加公式如下:

    左上点$Q_{11}$:

    $$ y(N, C, x_1, y_1) += grads(N, C, h', w') \cdot (1 - d_h) \cdot (1 - d_w) $$

    右上点$Q_{12}$:

    $$ y(N, C, x_1, y_2) += grads(N, C, h', w') \cdot (1 - d_h) \cdot d_w $$

    左下点$Q_{21}$:

    $$ y(N, C, x_2, y_1) += grads(N, C, h', w') \cdot d_h \cdot (1 - d_w) $$

    右下点$Q_{22}$:

    $$ y(N, C, x_2, y_2) += grads(N, C, h', w') \cdot d_h \cdot d_w $$

参数说明

参数名输入/输出/属性描述数据类型数据格式
grads输入正向resize的输出的梯度Tensor,对应公式中grads。FLOAT16、FLOAT32、BFLOAT16ND
original_image输入正向resize的输入Tensor。FLOAT16、FLOAT32、BFLOAT16ND
y输出正向resize的输入的梯度Tensor,对应公式中y。FLOAT16、FLOAT32、BFLOAT16ND

约束说明

调用说明

调用方式样例代码说明
aclnn接口test_aclnn_upsample_bilinear_2d_backward通过aclnnUpsampleBilinear2dBackward接口方式调用ResizeBilinearV2Grad算子。

【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考