CANN ops-nn ApplyAdagradD算子

📅 2026/6/24 6:24:34
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_slots为false时accum不累加grad * grad仅使用输入accum更新var。参数说明参数名输入/输出/属性描述数据类型数据格式var输入待更新的参数张量。FLOAT、FLOAT16、BFLOAT16NDaccum输入累加的平方梯度张量。与var具有相同类型和shape。FLOAT、FLOAT16、BFLOAT16NDlr输入学习率张量。shape为{1}与var具有相同类型。FLOAT、FLOAT16、BFLOAT16NDgrad输入梯度张量。与var具有相同类型和shape。FLOAT、FLOAT16、BFLOAT16NDvar输出更新后的参数张量。FLOAT、FLOAT16、BFLOAT16NDaccum输出更新后的累加平方梯度张量。FLOAT、FLOAT16、BFLOAT16NDupdate_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);约束与限制var、accum、grad的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),仅供参考