文件最后提交记录最后更新时间
1 个月前
15 天前
23 天前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
README

ApplyAdagrad

产品支持情况

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

功能说明

  • 算子功能:ApplyAdagrad是自适应梯度算法的核心更新操作,主要用于在优化器(如随机梯度下降)中更新模型参数。

  • 计算公式:

    \begin{align} accum = update\_slots ? accum + grad * grad : accum\\ var -= lr * grad * (1 / sqrt(accum)) \end{align}

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
var 输入 可变张量。 FLOAT、FLOAT16、BFLOAT16 ND
accum 输入 可变张量。与"var"具有相同类型,update_slots为true时原地更新。 FLOAT、FLOAT16、BFLOAT16 ND
lr 输入 与"var"具有相同类型。 FLOAT、FLOAT16、BFLOAT16 ND
grad 输入 梯度张量。与"var"具有相同类型。 FLOAT、FLOAT16、BFLOAT16 ND
var 输出 更新后的可变张量。 FLOAT、FLOAT16、BFLOAT16 ND
update_slots 属性 是否更新"accum",默认值为true。 BOOL -
use_locking 属性 是否使用锁,当前无特殊并发控制实现,默认值为false。 BOOL -

约束说明

  • var、accum、grad的shape需相同,lr需为标量。
  • var、accum、lr、grad的数据类型需相同。
  • use_locking属性作为兼容属性接入,当前无特殊并发控制实现。

调用说明

调用方式 样例代码 说明
图模式 test_geir_apply_adagrad.cpp 通过算子IR构图方式调用ApplyAdagrad算子。