news 2026/5/9 15:54:39

CANN/ops-cv 3D网格采样梯度算子

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/ops-cv 3D网格采样梯度算子

GridSampler3DGrad

【免费下载链接】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 训练系列产品

功能说明

  • 算子功能:GridSampler中3D场景的反向传播,完成张量input与张量grid的梯度计算。

  • 计算公式:

    • 计算流程:

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

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

      $$ 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中的$D_{in}$、$H_{in}$、$W_{in}$是一致的,grad、grid和dgrid中的$D_{out}$、$H_{out}$、$W_{out}$是一致的,grid最后一维大小为3,表示input像素位置信息为(x, y, z),会将x、y、z的取值范围归一化到[-1, 1]之间。

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

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

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

参数说明

参数名输入/输出/属性描述数据类型数据格式
grad输入表示反向传播过程中上一层的输出梯度,对应公式描述中的`grad`。数据类型与`x`的数据类型一致。当数据类型DOUBLE时,数据格式不支持NDHWC。FLOAT16、FLOAT32、DOUBLE、BFLOAT16NCDHW、NDHWC
x输入表示反向传播的输入张量,对应公式描述中的`input`。shape仅支持五维,且需满足`x`和`grad`的N轴和C轴的值保持一致,x的D,H,W值不可为0。FLOAT16、FLOAT32、DOUBLE、BFLOAT16NCDHW、NDHWC
grid输入表示采用像素位置的张量,对应公式描述中的`grid`。shape仅支持五维,且需满足`grid`和`grad`的N轴、D轴、H轴、W轴的值保持一致,最后一维的值等于3。FLOAT16、FLOAT32、DOUBLE、BFLOAT16NDHWC
interpolation_mode可选属性
  • 表示插值模式,对应公式描述中的`interpolation_mode`。支持bilinear(0:双线性插值)和nearest(1:最邻近插值)。
  • 默认值为"bilinear"。
STRING-
padding_mode可选属性
  • 用于表示填充模式,对应公式描述中的`padding_mode`。支持0('zeros')、1('border')、2('reflection')三种模式。
  • 默认值为"zeros"。
STRING-
align_corners可选属性
  • 表示设定特征图坐标与特征值的对应方式,对应公式描述中的`align_corners`。如果为true,则将极值-1和1视为参考输入的角像素点的中心点;如果为false,则视为参考输入的角像素点的角点。
  • 默认值为false。
BOOL-
dx输出表示反向传播的输出梯度,对应公式描述中的`dx`。数据类型、数据格式和shape与`x`的数据类型、数据格式和shape保持一致。FLOAT16、FLOAT32、DOUBLE、BFLOAT16NCDHW、NDHWC
dgrid输出表示`grid`梯度,对应公式描述中的`dgrid`。数据类型、数据格式和shape与`grid`的数据类型、数据格式和shape保持一致。FLOAT16、FLOAT32、DOUBLE、BFLOAT16NDHWC

Atlas 训练系列产品 :输入参数和输出参数的数据类型不支持DOUBLE、BFLOAT16。

约束说明

调用说明

调用方式样例代码说明
aclnn接口test_aclnn_grid_sampler3_d_backward通过aclnnGridSampler3DBackward接口方式调用GridSampler3DGrad算子。
图模式-通过算子IR构图方式调用GridSampler3DGrad算子。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 15:51:33

CANN/ops-tensor贡献指南

贡献指南 【免费下载链接】ops-tensor ops-tensor 是 CANN (Compute Architecture for Neural Networks)算子库中提供张量类计算的基础算子库,采用模块化设计,支持灵活的算子开发和管理。 项目地址: https://gitcode.com/cann/o…

作者头像 李华
网站建设 2026/5/9 15:51:31

CANN ops-nn Relu激活函数算子

Relu 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas…

作者头像 李华
网站建设 2026/5/9 15:38:31

基于Better Auth的全栈SaaS UI组件库:快速构建认证与支付系统

1. 项目概述:一个为现代SaaS应用量身定制的全栈UI组件库如果你正在构建一个需要用户认证、团队管理、订阅付费的B2B SaaS应用,并且厌倦了在不同UI库、认证方案和支付集成之间反复横跳,那么你很可能已经遇到了bettercone/ui。这不是又一个普通…

作者头像 李华
网站建设 2026/5/9 15:36:31

AI赋能系统综述自动化:从SVM与NLP技术原理到工程实践指南

1. 从“体力活”到“智力活”:AI如何重塑系统综述的工程实践如果你做过一次完整的系统综述,你大概会理解那种被海量文献淹没的窒息感。从确定研究问题、制定检索策略,到动辄数千篇文献的初筛、全文筛选,再到最后的数据提取与综合&…

作者头像 李华