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

CANN/cann-bench: 3D卷积滤波器梯度算子

Conv3DBackpropFilter 算子 API 描述

【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平台,推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench

1. 算子简介

Conv3D的filter梯度。

主要应用场景

  • 3D 卷积神经网络训练中的反向传播
  • 视频理解模型中 Conv3D 层的权重梯度计算
  • 医学影像 3D 分割模型的训练过程

算子特征

  • 难度等级:L3(Contraction)
  • 双输入(输入特征图和输出梯度)单输出(filter 梯度)
  • 输入 x 为 [N, C_in, D, H, W] 5维张量
  • 输入 grad 为 [N, C_out, D_out, H_out, W_out] 5维张量

2. 算子定义

数学公式

$$ y = \text{conv3d_filter_grad}(x, \text{grad}, \text{filter_size}) $$

计算 Conv3D 操作中卷积核(filter)的梯度。给定前向传播的输入特征图 $x$ 和来自下游的输出梯度 $\text{grad}$,通过反向传播计算得到 filter 的梯度 $y$。

输出 shape 计算

输出 filter 梯度的 shape 由filter_size参数指定:

$$ \text{shape}(y) = [C_{out}, C_{in}/groups, K_d, K_h, K_w] $$

其中 grad 的 spatial 维度需满足:

$$ D_{out} = \frac{D_{in} + 2 \cdot \text{pad}_d - \text{dilation}_d \cdot (K_d - 1) - 1}{\text{stride}_d} + 1 $$

3. 接口规范

算子原型

cann_bench.conv3_d_backprop_filter(Tensor x, Tensor grad, int[] strides, int[] pads, int[] dilations, int groups, int[] filter_size) -> Tensor y

输入参数说明

参数类型默认值描述
xTensor必选输入特征图,shape 为 [N, C_in, D, H, W]
gradTensor必选输出梯度,shape 为 [N, C_out, D_out, H_out, W_out]
stridesint[]必选步长,3元素 [stride_d, stride_h, stride_w]
padsint[]必选填充,6元素格式 [D_front, D_back, H_top, H_bottom, W_left, W_right]
dilationsint[]必选膨胀率,3元素 [dilation_d, dilation_h, dilation_w]
groupsint1分组数
filter_sizeint[]必选filter的shape [C_out, C_in/groups, K_d, K_h, K_w]

输出

参数Shapedtype描述
y[C_out, C_in/groups, K_d, K_h, K_w]与输入 x 相同filter梯度

数据类型

输入 (x, grad) dtype输出 dtype
float16float16
bfloat16bfloat16
float32float32

规则与约束

  • x 的 shape 格式为 [N, C_in, D, H, W]
  • grad 的 shape 格式为 [N, C_out, D_out, H_out, W_out]
  • x 和 grad 的 dtype 须一致
  • strides 指定 3D 卷积的步长,为 3 元素列表
  • pads 指定填充值,为 6 元素列表 [D_front, D_back, H_top, H_bottom, W_left, W_right]
  • dilations 指定膨胀率,为 3 元素列表
  • groups 指定分组数,C_in 和 C_out 都须能被 groups 整除
  • filter_size 指定输出 filter 梯度的 shape
  • grad 的 spatial 维度必须与 x、filter_size、strides、pads、dilations 计算的输出维度一致

4. 精度要求

采用生态算子精度标准进行验证。

误差指标

  1. 平均相对误差(MERE):采样点中相对误差平均值

    $$ \text{MERE} = \text{avg}(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)+\text{1e-7}}) $$

  2. 最大相对误差(MARE):采样点中相对误差最大值

    $$ \text{MARE} = \max(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)+\text{1e-7}}) $$

通过标准

数据类型FLOAT16BFLOAT16FLOAT32HiFLOAT32FLOAT8 E4M3FLOAT8 E5M2
通过阈值(Threshold)2^-102^-72^-132^-112^-32^-2

当平均相对误差 MERE < Threshold,最大相对误差 MARE < 10 * Threshold 时判定为通过。

5. 标准 Golden 代码

import torch import torch.nn.functional as F """ Conv3DBackpropFilter算子Torch Golden参考实现 Conv3D的filter梯度 公式: y = conv3d_filter_grad(x, grad, filter_size) """ def conv3_d_backprop_filter( x: torch.Tensor, grad: torch.Tensor, strides: list, pads: list, dilations: list, groups: int = 1, filter_size: list = None ) -> torch.Tensor: """ Conv3D的filter梯度 公式: y = conv3d_filter_grad(x, grad, filter_size) Args: x: 输入特征图,shape为[N, C_in, D, H, W] grad: 输出梯度,shape为[N, C_out, D_out, H_out, W_out] strides: 步长,3元素 [stride_d, stride_h, stride_w] pads: 填充,6元素 [D_front, D_back, H_top, H_bottom, W_left, W_right],对称时取front/top/left dilations: 膨胀率,3元素 [dilation_d, dilation_h, dilation_w] groups: 分组数 filter_size: filter的shape [C_out, C_in/groups, K_d, K_h, K_w] Returns: filter梯度,shape与filter_size相同 """ # pads 是 6 元素格式,对称 padding 时取 (D_front, H_top, W_left) # 即 pads[0], pads[2], pads[4] padding = (pads[0], pads[2], pads[4]) stride = (strides[0], strides[1], strides[2]) dilation = (dilations[0], dilations[1], dilations[2]) # 使用 torch.nn.grad.conv3d_weight 计算 filter 梯度 y = F.grad.conv3d_weight(x, tuple(filter_size), grad, stride=stride, padding=padding, dilation=dilation, groups=groups) return y

6. 额外信息

算子调用示例

import torch import cann_bench x = torch.randn(2, 64, 8, 16, 16, dtype=torch.float32, device="npu") grad = torch.randn(2, 128, 6, 14, 14, dtype=torch.float32, device="npu") # filter_size: [C_out, C_in/groups, K_d, K_h, K_w] y = cann_bench.conv3_d_backprop_filter(x, grad, strides=[1, 1, 1], pads=[1, 1, 1, 1, 1, 1], dilations=[1, 1, 1], groups=1, filter_size=[128, 64, 3, 3, 3])

【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平台,推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench

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

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

相关文章:

  • CANN/pypto逻辑与运算API文档
  • 2026年贵阳全屋整装一站式方案深度横评 - 优质企业观察收录
  • 2026年贵阳精装整装一站式服务横评:如何避免预算超支与设计脱节的装修陷阱 - 优质企业观察收录
  • 昆山裕振鑫机械设备:宝山铲车出租怎么联系 - LYL仔仔
  • UVa 189 Pascal Program Lengths
  • 基于主动学习的广义Benders分解算法初始化优化研究
  • CANN/cann-bench: 加除乘复合算子
  • CANN/HCCL算法分析器使用指南
  • 2026办理腾讯企业邮箱服务,靠谱销售电话查询方式全解析 - 品牌2025
  • AI道德地位:从工具到伙伴的认知转变与设计伦理
  • Balena Etcher终极指南:三分钟学会安全烧录系统镜像
  • 基于SVR与特征选择的系外行星半径预测:数据清洗、模型构建与天文解读
  • Python发布成AIP接口服务的几种方式
  • 非洲AI本土化实践:医疗、农业、金融、教育四大领域创新与挑战
  • 信贷风控中可解释AutoML实践:用SHAP与H2O实现透明AI决策
  • 2026年成都水刀配件厂家与水刀易损件采购完全指南:源头厂商直达+品牌深度横评 - 企业名录优选推荐
  • 2026数据资产入表解决方案(52页 PPT)
  • 零基础部署 OpenClaw v2.7.1,自动化操作电脑
  • chatgpt入口 chatgpt的一些python调用方法
  • 贵阳新房装修怎么选?5大中高端室内设计公司对比与选购指南 - 优质企业观察收录
  • 2026年贵阳室内全案设计与精装整装深度横评:五大品牌设计落地与工程保障对标指南 - 优质企业观察收录
  • 第五篇:锻造大脑——为什么算法公开,你却造不出 GPT?
  • 天津祥和景观工程:红桥景观花镜设计公司有哪些 - LYL仔仔
  • 联邦学习与Transformer在CV与安全领域的融合应用与实战解析
  • 国产OpenClaw智能体推荐:企业级国产OpenClaw智能体厂商全解析 - 品牌2025
  • 网盘直链下载助手完整指南:告别限速,解锁九大网盘真实下载链接
  • CANN 全国挑战赛 2025
  • 分析原设计的问题
  • 微波马弗炉推荐品牌及核心参数解析 - 品牌推荐大师
  • VADER框架:将模糊AI法规转化为可量化技术指标的方法论