1.optimizer.SGD
torch.optimizer.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, nesterov=False)
随机梯度下降法
主要参数:
lr (float) – 学习率
momentum (float, 可选) – 动量因子(默认:0)
weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认:0)
dampening (float, 可选) – 动量的抑制因子(默认:0)
nesterov (bool, 可选) – 使用Nesterov动量(默认:False)
2.optimizer.Adagrad
torch.optimizer.Adagrad(params, lr=0.01, lr_decay=0, weight_decay=0)
自适应学习率下降法
主要参数:
lr (float, 可选) – 学习率(默认: 1e-2)
lr_decay (float, 可选) – 学习率衰减(默认: 0)
weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认: 0)
3.optimizer.RMSprop
torch.optimizer.RMSprop(params, lr=0.01, alpha=0.99, eps=1e-08, weight_decay=0, momentum=0, centered=False)
Adagrad的一种改进
主要参数:
lr (float, 可选) – 学习率(默认:1e-2)
momentum (float, 可选) – 动量因子(默认:0)
alpha (float, 可选) – 平滑常数(默认:0.99)
eps (float, 可选) – 为了增加数值计算的稳定性而加到分母里的项(默认:1e-8)
centered (bool, 可选) – 如果为True,计算中心化的RMSProp,并且用它的方差预测值对梯度进行归一化
weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认: 0)
4.optimizer.Adadelta
torch.optimizer.Adadelta(params, lr=1.0, rho=0.9, eps=1e-06, weight_decay=0)
也是Adgrad的一种改进
主要参数:
rho (float, 可选) – 用于计算平方梯度的运行平均值的系数(默认:0.9)
eps (float, 可选) – 为了增加数值计算的稳定性而加到分母里的项(默认:1e-6)
lr (float, 可选) – 在delta被应用到参数更新之前对它缩放的系数(默认:1.0)
weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认: 0)
5.optimizer.Adam
torch.optimizer.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0)
RMSprop结合Momentum
主要参数:
lr (float, 可选) – 学习率(默认:1e-3)
betas (Tuple[float, float], 可选) – 用于计算梯度以及梯度平方的运行平均值的系数(默认:0.9,0.999)
eps (float, 可选) – 为了增加数值计算的稳定性而加到分母里的项(默认:1e-8)
weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认: 0)
6.optimizer.Adamax
torch.optimizer.Adamax(params, lr=0.002, betas=(0.9, 0.999), eps=1e-08, weight_decay=0)
Adam增加学习率上限
主要参数:
lr (float, 可选) – 学习率(默认:2e-3)
betas (Tuple[float, float], 可选) – 用于计算梯度以及梯度平方的运行平均值的系数
eps (float, 可选) – 为了增加数值计算的稳定性而加到分母里的项(默认:1e-8)
weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认: 0)
7.optimizer.SparseAdam
torch.optimizer.SparseAdam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08)
稀疏版的Adam
主要参数:
params (iterable) – iterable of parameters to optimize or dicts defining parameter groups
lr (float, 可选) – 学习率(默认:1e-3)
betas (Tuple[float, float], 可选) – 用于计算梯度以及梯度平方的运行平均值的系数
eps (float, 可选) – 为了增加数值计算的稳定性而加到分母里的项(默认:1e-8)
8.optimizer.ASGD
torch.optimizer.ASGD(params, lr=0.01, lambd=0.0001, alpha=0.75, t0=1000000.0, weight_decay=0)
随机平均梯度下降
主要参数
lr (float, 可选) – 学习率(默认:1e-2)
lambd (float, 可选) – 衰减项(默认:1e-4)
alpha (float, 可选) – eta更新的指数(默认:0.75)
t0 (float, 可选) – 指明在哪一次开始平均化(默认:1e-6)
weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认: 0)
9.optimizer.Rprop
torch.optimizer.Rprop(params, lr=0.01, etas=(0.5, 1.2), step_sizes=(1e-06, 50))
弹性反向传播
主要参数:
lr (float, 可选) – 学习率(默认:1e-2)
etas (Tuple[float, float], 可选) – 一对(etaminus,etaplis), 它们分别是乘法的增加和减小的因子(默认:0.5,1.2)
step_sizes (Tuple[float, float], 可选) – 允许的一对最小和最大的步长(默认:1e-6,50)
10.optimizer.LBFGS
torch.optimizer.LBFGS(params, lr=1, max_iter=20, max_eval=None, tolerance_grad=1e-05, tolerance_change=1e-09, history_size=100, line_search_fn=None)
一种BFGS的改进
主要参数:
lr (float) – 学习率(默认:1)
max_iter (int) – 每一步优化的最大迭代次数(默认:20))
max_eval (int) – 每一步优化的最大函数评价次数(默认:max * 1.25)
tolerance_grad (float) – 一阶最优的终止容忍度(默认:1e-5)
tolerance_change (float) – 在函数值/参数变化量上的终止容忍度(默认:1e-9)
history_size (int) – 更新历史的大小(默认:100)
备注:参考pytorch中文文档整理