“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等,开辟“他山之石”专栏,助你乘风破浪,一路奋勇向前,敬请关注。
作者:知乎—Agnio-ltp地址:https://www.zhihu.com/people/agnio-ltp
神经网络优化器的作用是为了优化神经网络,从而加速训练网络。pytorch中的optimizer包含好几个常用的分类器。这些分类器的原理各有差异,比如学习率,权重衰减等方面。这里分析不同分类器对于反向传播后的loss值的影响,通常loss值在多次反向传播后越小那么模型预测的准确率会越高,下面就直接通过代码来分析。 编译环境:anaconda、pytorch01
读取数据集并构建模型
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision
import torchvision.datasets as dset
import torchvision.transforms as transforms
import torch.optim as optim
模型训练,使用线性模型
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.f1 = nn.Linear(28*28, 100, bias=True)
self.f2 = nn.Linear(100, 10, bias=True)
def forward(self, data):
data = self.f1(data)
data = F.relu(data)
data = self.f2(data)
return data
读取MNIST数据集
root = 'data/MNIST'
transformfun = transforms.Compose([
transforms.ToTensor(),