深度学习训练过程中学习率的大小十分重要。学习率过低会导致学习太慢,学习率过高会导致难以收敛。通常情况下,初始学习率会比较大,后来逐渐缩小学习率。
通常情况下模型优化器设置
首先定义两层全连接层模型
import torch
from torch import nn
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.layer1 = nn.Linear(10, 2)
self.layer2 = nn.Linear(2, 10)
def forward(self, input):
return self.layer2(self.layer1(input))
神经网络的执行步骤。首先神经网络进过前向传播,这是神经网络框架会搭建好计算图(这里会保存操作和对应参与计算的张量,因为在根据计算图计算梯度时需要这些信息)。然后是误差反向传播,loss.backward() ,这时会计算梯度信息。最后根据梯度信息,更新参数。
loss.backward()
optimizer.step()
optimizer.zero_grad()
optimizer.zero_grad() 是将这一轮的梯度清零,防止影响下一轮参数的更新。这里曾问过面试的问题:什么时候不使用这一步进行清零。

深度学习中,学习率的适当设置至关重要。本文探讨了如何在PyTorch中配置模型优化器,包括只训练部分参数、为不同部分设置不同学习率以及如何动态调整学习率,利用param_group实现优化器的灵活控制。
订阅专栏 解锁全文
3558

被折叠的 条评论
为什么被折叠?



