




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四节
实践任务-手写数字识别神经网络的训练介绍神经网络的训练是指从训练数据中自动获取最优权重参数的过程,通常分为两个阶段:第1阶段先通过前向传播算法计算得到预测值,并计算预测值与真实值之间的差距(该差距也称为损失函数);第2阶段通过反向传播算法计算损失函数对每一个参数的梯度,使用合适的梯度下降算法对参数进行更新。
第四节
实践任务-手写数字识别神经网络的训练介绍神经网络的训练以及参数更新的全部过程,如图表示。
实践任务1-数据处理1数据集介绍手写数字识别采用MNIST数据集进行训练,MNIST是有YannLeCun等创建的手写数字识别数据集,简单易用,通过对该数据集可以很好地进行手写数字识别神经网络建模。MINIST数据集主要是有一些手写的数字的图片及对应的标签,该数据集的图片共有10类,对应的阿拉伯数字为0~9,如图表示。
实践任务1-数据处理1数据集介绍在MINIST数据集介绍的官网(/exdb/mnist/)中可知,原始的MNIST数据集共包含4个文件,如图表示。
文件名大小用途train-images-idx3-ubyte.gz9912422bytes训练集图像train-labels-idx1-ubyte.gz28881bytes训练集标签t10k-images-idx3-ubyte.gz1648877bytes测试集图像t10k-labels-idx1-ubyte.gz4542bytes测试集标签实践任务1-MNIST数据处理2导入数据集
在PyTorch中,有一个非常重要并且好用的包是torchvision,该包主要由3个子包组成,分别是models、datasets和transforms。
models定义了许多用来完成图像方面深度学习的任务模型。
datasets中包含MINIST、FakeData、COCO、LSUN、ImageFolder、DatasetFolder、ImageNet、CIFAR等一些常用的数据集,并且提供了数据集设置的一些重要参数,可以通过简单数据集设置来进行数据集的调用。
transforms用来对数据进行预处理,预处理会加快神经网络的训练,常见的预处理包括从数组转成张量(tensor)、归一化等。
实践任务1-MNIST数据处理2导入数据集importnumpyasnp
importtorch
fromtorchvisionimportdatasets,transforms
importmatplotlib.pyplotasplt
importtorchvision导入所需要的python包:实践任务1-MNIST数据处理2导入数据集导入MNIST训练集数据:#1导入数据集
train_loader=torch.utils.data.DataLoader(
datasets.MNIST(root='./data',#root表示数据加载的相对目录
train=True,#train表示是否加载数据库的训练集,False时加载测试集
download=True,#download表示是否自动下载
transform=transforms.Compose([#transform表示对数据进行预处理的操作
transforms.ToTensor(),
transforms.Normalize((0.1307,),(0.3081,))
])),batch_size=64,shuffle=True)#batch_size表示该批次的数据量shuffle表示是否洗牌实践任务1-MNIST数据处理2导入数据集导入MNIST测试集数据:test_loader=torch.utils.data.DataLoader(
datasets.MNIST('./data',train=False,transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,),(0.3081,))
])),batch_size=64,shuffle=True)实践任务1-MNIST数据处理2导入数据集数据可视化:defimshow(img):
img=img/2+0.5#逆归一化
npimg=img.numpy()
plt.imshow(np.transpose(npimg,(1,2,0)))
plt.show()
#得到batch中的数据
dataiter=iter(train_loade
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论