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

CANN ops-nn ApplyAdagradD算子

ApplyAdagradD

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

产品支持情况

产品是否支持
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品
Atlas 推理系列产品
Atlas 训练系列产品

功能说明

  • 算子功能:ApplyAdagradD 是 Adagrad 优化器的参数更新算子,用于根据梯度、学习率和累加平方梯度更新参数。

  • 计算公式:

    $$ accum = accum + grad * grad $$

    $$ var = var - lr * grad * (1 / sqrt(accum)) $$

  • update_slotsfalse时,accum不累加grad * grad,仅使用输入accum更新var

参数说明

参数名输入/输出/属性描述数据类型数据格式
var输入待更新的参数张量。FLOAT、FLOAT16、BFLOAT16ND
accum输入累加的平方梯度张量。与"var"具有相同类型和shape。FLOAT、FLOAT16、BFLOAT16ND
lr输入学习率张量。shape为{1},与"var"具有相同类型。FLOAT、FLOAT16、BFLOAT16ND
grad输入梯度张量。与"var"具有相同类型和shape。FLOAT、FLOAT16、BFLOAT16ND
var输出更新后的参数张量。FLOAT、FLOAT16、BFLOAT16ND
accum输出更新后的累加平方梯度张量。FLOAT、FLOAT16、BFLOAT16ND
update_slots属性是否更新"accum",默认值为true。BOOL-
use_locking属性是否使用锁,当前无特殊并发控制实现,默认值为false。BOOL-

调用说明

调用方式样例代码说明
图模式test_geir_apply_adagrad_d.cpp通过算子IR构图调用ApplyAdagradD算子。
aclnntest_aclnn_apply_adagrad_d.cpp通过aclnn接口调用ApplyAdagradD算子。

aclnn接口

aclnnStatus aclnnApplyAdagradDGetWorkspaceSize( const aclTensor* var, const aclTensor* accum, const aclTensor* lr, const aclTensor* grad, bool updateSlots, bool useLocking, uint64_t* workspaceSize, aclOpExecutor** executor); aclnnStatus aclnnApplyAdagradD( void* workspace, uint64_t workspaceSize, aclOpExecutor* executor, const aclrtStream stream);

约束与限制

  • varaccumgrad的shape和数据类型必须一致。
  • lr必须为标量张量,shape为{1}。
  • 仅支持ND数据格式。
  • 空tensor支持no-op执行。
  • use_locking当前无特殊并发控制实现。
  • FLOAT16、BFLOAT16输入会提升至FLOAT计算后再转回原类型。

贡献说明

贡献者贡献方贡献算子贡献时间贡献内容
Tream个人开发者ApplyAdagradD2026/05/29ApplyAdagradD算子适配开源仓

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

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

http://www.gsyq.cn/news/1583136.html

相关文章:

  • 98个公共Tracker完整指南:彻底解决BT下载卡顿难题
  • TruecallerJS实战应用:10个真实场景下的电话号码查询解决方案
  • 5个实战项目:用Deep Learning Illustrated代码构建深度学习应用
  • ComfyUI-LTXVideo完整指南:如何在ComfyUI中轻松生成高质量AI视频
  • CANN运行时设备到主机同步内存复制示例
  • Bernini-R-GGUF-ComfyUI核心功能解析:为什么它是视频创作者的终极工具
  • 快速上手hspec:10分钟学会Haskell BDD测试框架 [特殊字符]
  • 如何3分钟上手vite-vue3-chrome-extension-v3?从安装到第一个扩展的完整指南
  • CANN/catlass优化矩阵乘法示例
  • JoyAI-Image-Edit-Plus-Diffusers核心功能解析:Diffusers库的增强版图像编辑神器
  • Ngx-restangular 测试策略:单元测试和集成测试完整指南
  • 如何用Gemma-4-26B-A4B-StyleTune提升创作质量?新手必看的AI写作指南 [特殊字符]
  • Bernini-R-GGUF-ComfyUI安装教程:5分钟快速部署AI视频生成环境
  • FreeOpcUa在实际项目中的应用案例:工业自动化系统的集成经验
  • Agora-Flutter-SDK高级功能实战:美颜、虚拟背景与空间音频实现
  • The Lightmapper对比分析:与其他Blender光照贴图插件的优劣比较
  • XRCarouselView源码解析:理解iOS轮播控件的核心实现原理
  • 10个CatSniffer实用技巧:从基础嗅探到高级攻击的完整教程
  • Continuum部署指南:从GitHub Releases到Discoverium的应用分发
  • sniffer源码解析:Go语言实现高性能网络流量捕获的关键技术
  • JoyAI-VL-Interaction-Preview技术架构深度解析:8B规模视觉优先模型的设计哲学
  • Haskell测试框架hspec:为什么它是现代Haskell开发的必备工具?[特殊字符]
  • TensorFlow Data Validation 与Apache Beam集成:大规模数据验证的完整解决方案
  • 提升laravel-money性能:处理大量货币数据的优化技巧
  • Pinia状态管理在vite-vue3-chrome-extension-v3中的终极指南:5个技巧让组件通信不再头疼
  • HalfStyle插件扩展开发指南:构建自定义字符分割插件
  • Easy-PHP:从零构建高性能轻量级PHP框架的完整指南 [特殊字符]
  • 如何快速上手cssplot:从安装到创建第一个柱状图的完整指南
  • CANN/catlass GEMM内核开发详解
  • Javinizer元数据聚合策略:多源数据合并与优先级设置技巧