本系列旨在通过阅读官方pytorch代码熟悉CNN各个框架的实现方式和流程。
【pytorch官方文档学习之六】torch.optim
- 本文是对官方文档PyTorch: optim的详细注释和个人理解,欢迎交流。
- learnable parameters的缺点
本系列的之前几篇文章已经可以做到使用torch.no_grad
或.data
来手动更改可学习参数的tensors
来更新模型的权重。但是这种方法对于简单的优化算法,如stochastic gradient descent
随机梯度下降尚可,而对于实际中更常见的复杂的优化器optimizer
,如Adam
、AdaGrad
和RMSProp
等就显得过于臃肿。
为了解决这个问题,torch.optim
包应运而生。 - optim
torch.optim
包可实现常用的优化算法。 - 实例
以下实例使用torch.nn.Module
来定义神经网络模型,使用torch.optim
提供的Adam
算法优化神经网络模型。
# -*- coding: utf-8 -*-
import torch
# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100