访问作者github: https://github.com/NefelibataBIGR/PyTorch_Notes ,获取笔记代码
六、损失函数、优化器
具体代码见Python>pytorch文件中的 ==nn_loss_optim.ipynb== 文件
1. 损失函数、反向传播
- 损失函数:
- 评估神经网络的好坏
- 越小越好
- 参考官方文档:torch.nn — PyTorch 2.6 documentation
- 常见损失函数:
- L1损失函数:nn.L1Loss()
- 均方差损失函数:nn.MSELoss()
- 交叉熵损失函数:nn.CrossEntropyLoss()
- 注意输入数据与标签的形状与类型!
- 反向传播:
- xxx.backward()
2. 优化器
- torch.optim,参考官方文档:torch.optim — PyTorch 2.6 documentation
- 官方给的例子:
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9) # 实例化
# optimizer = optim.Adam([var1, var2], lr=0.0001)
for input, target in dataset:
optimizer.zero_grad() # 对上一步梯度清零,后面重新计算梯度
output = model(input) # 训练
loss = loss_fn(output, target) # 得到损失函数
loss.backward() # 反向传播
optimizer.step() # 优化参数
一般都要传入参数:model.parameters()(即模型参数,权重、偏置等)、lr(即学习率),其他参数不同优化器不一样,参考官方文档

评论
使用 GitHub 账号留言 · 评论存在 仓库 issues