torch_npu.optim.NpuFusedBertAdam
产品支持情况
| 产品 | 是否支持 |
|---|---|
| [object Object]Atlas A3 训练系列产品[object Object] | √ |
| [object Object]Atlas A2 训练系列产品[object Object] | √ |
| [object Object]Atlas 训练系列产品[object Object] | √ |
功能说明
通过张量融合实现的高性能BertAdam优化器。BertAdam的功能和原理可参考。
函数原型
[object Object]
参数说明
- params (
dict):必选参数,模型参数或模型参数组,params为参数的可迭代对象或参数组的dict类型。 - lr (
float):可选参数,学习率,默认值为1e-3。lr的值小于0时,打印“ValueError”异常信息。 - warmup (
float):t_total的warmup比例,默认值为-1,表示不进行warmup。warmup的值小于0且warmup不等于-1,或者warmup大于等于1,打印“ValueError”异常信息。 - t_total (
float):学习率调整的步数,默认值为-1,表示固定学习率。 - schedule (
str):学习率warmup策略,默认值为warmup_linear。schedule为字符串,其值必须为warmup_cosine、warmup_constant、warmup_linear、warmup_poly中的一个。 - b1 (
float):Adam b1,默认值为0.9。b1的值小于0或大于1时,打印“ValueError”异常信息。 - b2 (
float):Adam b2,默认值为0.99。b2的值小于0或大于1时,打印“ValueError”异常信息。 - e (
float):Adam epsilon,默认值为1e-6。e的值小于0时,打印“ValueError”异常信息。 - weight_decay (
float):可选参数,权重衰减,默认值为0.01。 - max_grad_norm (
float):最大梯度范围,默认值为1.0,-1表示不做裁剪。
返回值说明
类型为NpuFusedBertAdam的对象。
约束说明
NpuFusedBertAdam的实现机制要求params中的每一个模型参数对象在使用过程中不能被重新申请,否则将导致无法预料的结果。引起模型参数对象被重新申请的操作包括但不限于:
- 将模型或其子Module进行.cpu操作
- 将模型参数对象指向新的对象
- 将模型参数对象置为None
对模型参数对象进行inplace计算,或者读取参数的值,NpuFusedBertAdam可正常工作。
调用示例
[object Object]