pytorch中的学习率与优化器【lr_scheduler与optimizer】

pytorch中优化器的使用流程大致为:

for input, target in dataset:
    optimizer.zero_grad()
    output = model(input)
    loss = loss_fn(output, target)
    loss.backward()
    optimizer.step()

构建优化器
为单个参数进行优化时:

optimizer = optim.SGD(model.parameters(), lr = 0.01, momentum=0.9)

为多个参数设置不同学习率时:

optim.SGD([
                {'params': model.base.parameters()},
                {'params': model.classifier.parameters(), 'lr': 1e-3}
            ], lr=1e-2, momentum=0.9)

参数

class torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0)[source]
params (iterable) – 待优化参数的iterable或者是定义了参数组的dict
lr (float, 可选) – 学习率(默认:1e-3)
betas (Tuple[float, float], 可选) – 用于计算梯度以及梯度平方的运行平均值的系数(默认:0.90.999)
eps (float, 可选) – 为了增加数值计算的稳定性而加到分母里的项(默认:1e-8) (加在分母防止除0)
weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认: 0

你可能感兴趣的:(pytorch,pytorch,学习,深度学习)