Optimizer
When using an optimizer, you need to configure the name
item to indicate which optimizer to use, and then configure their respective parameters according to different optimizer. The following are the names of each optimizer.
Optimizer | name |
---|---|
SGD | sgd |
FTRL | ftrl |
Adagrad | adagrad |
Adam | adam |
AdamW | adamw |
Lion | lion |
SGD
SGD需要配置如下的一些参数:
- : 学习率, default: 1e-3, 配置名称: gamma
- : 权重衰减的系数, default: 0, 配置名称: lambda
FTRL
FTRL需要配置如下的一些参数:
- : 学习率, default: 5e-3, 配置名称: gamma
- : 参数, default: 0.0, 配置名称: beta
- : L1正则参数, default: 0.0, 配置名称: lambda1
- : L2正则参数, default: 0.0, 配置名称: lambda2
Adagrad
Adagrad需要配置如下的一些参数:
- : 学习率, default: 1e-2, 配置名称: gamma
- : 权重衰减的系数, default: 0.0, 配置名称: lambda
- : 学习率衰减系数, default: 0.0, 配置名称: eta
- : 最小误差项, default: 1e-10, 配置名称: epsilon
Adam
Adam需要配置如下的一些参数(不支持amsgrad):
- : 学习率, default: 1e-3, 配置名称: gamma
- : 梯度的移动均值系数, default: 0.9, 配置名称: beta1
- : 梯度平方的移动均值系数, default: 0.999, 配置名称: beta2
- : 权重衰减的系数, default: 0.0, 配置名称: lambda
- : 最小误差项, default: 1e-8, 配置名称: epsilon
AdamW
AdamW需要配置如下的一些参数(不支持amsgrad):
- : 学习率, default: 1e-3, 配置名称: gamma
- : 梯度的移动均值系数, default: 0.9, 配置名称: beta1
- : 梯度平方的移动均值系数, default: 0.999, 配置名称: beta2
- : 权重衰减的系数, default: 1e-2, 配置名称: lambda
- : 最小误差项, default: 1e-8, 配置名称: epsilon
Lion
Lion需要配置如下的一些参数:
- : 学习率, default: 3e-4, 配置名称: eta
- : 梯度的移动均值系数, default: 0.9, 配置名称: beta1
- : 梯度的移动均值系数, default: 0.99, 配置名称: beta2
- : 权重衰减的系数, default: 1e-2, 配置名称: lambda
样例
import damo
import numpy as np
# configure learning rate scheduler
schedluer_params = damo.Parameters()
schedluer_params.insert("name": "")
# configure optimizer
optimizer_params = damo.Parameters()
optimizer_params.insert("name": "sgd")
optimizer_params.insert("gamma": 0.001)
optimizer_params.insert("lambda": 0.0)
# no scheduler
opt1 = damo.PyOptimizer(optimizer_params)
# specific scheduler
opt1 = damo.PyOptimizer(optimizer_params, schedluer_params)
w = np.zeros(10, dtype=np.float32)
gs = np.random.random(10).astype(np.float32)
step = 0
opt1.call(w, gs, step)