pytorch优化器设置

深度学习训练过程中学习率的大小十分重要。学习率过低会导致学习太慢,学习率过高会导致难以收敛。通常情况下,初始学习率会比较大,后来逐渐缩小学习率。

通常情况下模型优化器设置

首先定义两层全连接层模型

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() 是将这一轮的梯度清零,防止影响下一轮参数的更新。这里曾问过面试的问题:什么时候不使用这一步进行清零。

model = Net()
# 只传入想要训练层的参数。其他未传入的参数不参与更新
optimizer_Adam = torch.optim.Adam(mode

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