当前位置: 首页 > news >正文

CANN/ops-nn三维平均池化反向传播算子

AvgPool3DGrad

【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn

产品支持情况

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

功能说明

  • 算子功能:三维平均池化的反向传播,计算三维平均池化正向传播的输入梯度。

  • 计算公式:

$$ D_{out} = \left\lfloor \frac{D_{in} + 2 \times \text{pads}[0] - \text{ksize}[0]}{\text{strides}[0]} + 1 \right\rfloor $$

$$ H_{out} = \left\lfloor \frac{H_{in} + 2 \times \text{pads}[1] - \text{ksize}[1]}{\text{strides}[1]} + 1 \right\rfloor $$

$$ W_{out} = \left\lfloor \frac{W_{in} + 2 \times \text{pads}[2] - \text{ksize}[2]}{\text{strides}[2]} + 1 \right\rfloor $$

若属性ceil_mode为True,且满足条件$(D_{out} - 1) \times \text{stride}[0] \geq D_{in} + \text{padding}[0]$,则会跳过最后一个窗口,这将导致维度$D_{out}$减少 1。此规则同样适用于维度$W_{out}$$H_{out}$

参数说明

参数名输入/输出/属性描述数据类型数据格式
orig_input_shape输入
  • 表示正向的输入shape的值。
  • 输入的值为[N,C,Din,Hin,Win]。
INT32ND
grads输入
  • 表示反向输入的梯度。
  • 输入shape为[N,C,Dout,Hout,Wout]或者[N,Dout,Hout,Wout,C]。
FLOAT、FLOAT16、BFLOAT16ND
ksize属性表示池化窗口大小。数值必须大于0。INT64-
strides属性表示池化操作的步长。数值必须大于0。INT64-
pads属性表示在输入的D、H、W方向上pads补0的层数。数值必须大于等于0。INT64-
ceil_mode可选属性
  • 表示正向平均池化过程中推导的输出的shape是否向上取整(True表示向上取整)。
  • 默认值为false。
BOOL-
count_include_pad可选属性
  • 计算正向平均池化时是否包括pads填充的0(True表示包括填充的0)。
  • 默认值为true。
BOOL-
divisor_override可选属性
  • 表示取平均的除数。如果指定,它将用作平均计算中的除数,当值为0时,该属性不生效。
  • 默认值为0。
INT-
data_format可选属性
  • 指定输入`grads`数据格式。
  • 取值必须为["NDHWC","NCDHW"]之一,默认值为"NDHWC"。
STRING-
output输出待进行AvgPool3DGrad计算的出参。shape需要与`orig_input_shape`的值一致。FLOAT、FLOAT16、BFLOAT16ND

约束说明

无。

调用说明

调用方式样例代码说明
aclnn接口test_aclnn_avgpool3d_backward.cpp通过aclnnAvgPool3dBackward接口方式调用AvgPool3DGrad算子。

【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn

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

http://www.jsqmd.com/news/793356/

相关文章:

  • 通过 Taotoken 的 Token Plan 套餐在 Ubuntu 长期项目中实现预算可控
  • 【C++笔记】-- 七种排序流食般讲解
  • CLI桥接器设计:用Go实现开源工具一键安装与跨平台管理
  • CANN/asc-devkit SetValue API文档
  • 可配置处理器技术:嵌入式SOC设计的灵活加速方案
  • CANN/asc-devkit ReduceProd API文档
  • 开始添加性别+年龄自动识别系统
  • CANN/ops-nn: 原位加法RMS归一化算子
  • 《零基础学GPU KMD》专栏简介
  • Weaviate向量数据库实战:从官方示例到RAG应用开发全解析
  • 2018-11至2025-9 71个主要城市商品房租金均价数据(xlsx)
  • ARM CP15寄存器详解与底层开发实践
  • 【信息科学与工程学】计算机科学与自动化-——第十五篇云计算12- 裸金属
  • LInux常用指令(个人查询用)
  • CANN/ops-nn动态块MX量化算子
  • Payum实战案例:构建支持多种支付方式的电商平台完整指南 [特殊字符]
  • 3D堆叠封装技术:热挑战与优化方案
  • 【数据结构】与排序算法鏖战5天,我终于搞懂了排序的思路和实现--排序算法大全的保姆级攻略
  • 动态紧凑模型在电子热设计中的高效应用
  • ARM GICv3中断控制器与ICC_EOIR1寄存器详解
  • Paris注解处理器深度解析:从@Style到@StyleableChild的完整实现原理
  • 虽然市面上已经有人流量统计摄像头----但是我有价格优势
  • 12,Springboot3+vue3实现系统公告功能
  • 【C++ -Day7】封装实战 | 用类封装日志、配置和文件操作模块
  • 电子热量表设计:PIC16F913微控制器应用与热力计算
  • Scarpet脚本语言深度解析:在Fabric Carpet中编写高级自动化程序的完整指南
  • android C++ opencv 年龄 性别识别深度神经网络模型
  • CANN/asc-devkit向量最小值函数
  • 告别理论!用TI毫米波雷达开发板实测多普勒测速(附Python代码)
  • 从DES到AES:被‘遗忘’的IDEA算法,它的设计思想给现代密码学留下了什么?