版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RNNLSTM。本文将通过一个实战项目带大家使用PyTorch搭建RNN模型。本项目将构建一个RNN模型,来对MNIST问,MNIST数据集不是吗,而RNN是处理序列信号的。为什么识别也能使用RNN模型呢?其实,这里我们可以把看成是序列信号,例如下面是MNIST数据集的一张图MNIST数据集中所有的都是28x28的。按行来看,的每一行都包含28个像素点,一共有28行。因此,我们可以把每一行的28个像素点当成RNN的一个输入。总共有28行,则。的分割方式如下图所示:输入已经确定了,对于输出,因为是分类问题,识别0~9数字,因此,RNN模型应该有个输出,即。此例中,确定了基本结构和输入输出之后,我们开始使用PyTorchRNNMNIST下面代码实现了MNIST数据集的导入。importtorchimporttorchvisionimporttorchvision.transformsastransformsimporttorch.nnasnnimporttorch.nn.functionalasFimporttorch.optimasoptimimportmatplotlib.pyplotaspltimportnumpyasnptransformpose(#trainset=##不从网络上trainloader=torch.utils.data.DataLoader(trainset,testset=#不从网络上testloader=torch.utils.data.DataLoader(testset,batch_size=4,shuffle=False, 成,这里的download设置为False,即从本地导入数据集。我们设置,
表示每次epoch都重新打乱训练样本 下面程序展示了Mini-batch训练样本并标注正确的过程defnpimg=img.numpy()plt.imshow(np.transpose(npimg,(1,2,0)))#选择一个batchdataiter=images,labels=#显示#打印print(''.join('%11s'%labels[j].numpy()forjintorch.Size([60000,torch.Size([60000,28,torch.Size([10000,28,训练集包含60000张,测试集包含10000张,每张大小为28x28RNN与CNN类似,我们可以使用PyTorch直接搭建RNN模型,首先定义RNN类。classNet(nn.Module):definit(self):super(Net,self).initself.rnn=nn.LSTM(input_size=28,hidden_size=84,h,time_step,#使用LSTM#每行包含#隐藏层神经元设置为84是否将batch self.out=nn.Linear(8410#输出层,包含10个神经元,对应defforward(self,r_out,(h_n,h_c)=self.rnn(x,RNNout=self.out(r_out[:,-1,return以上代码是构建RNN的部分。我们发现PyTroch中构建RNN模型非常简单,只需简单
input_size=
表示每个输入元素的维度,即每行包含28个像hidden_size=self.out=nn.Linear(84, 将隐藏层神经元设置为84个, hidden_size=self.out=nn.Linear(84,为LSTM的单元
(h_n,r_out,(h_n,h_c)=self.rnn(x,r_out,(h_n,h_c)=self.rnn(x,out=self.out(r_out[:,-1,out=self.out(r_out[:,-1,netnet=(rnn):LSTM(28,84,num_layers=2,(out):Linear(in_features=84,out_features=10,非常直观,可以完整清晰地查看我们构建的RNN模型结构。
表示选择最后一正如之前利用PyTorch构建CNN模型的实战过程,我们仍使用Adamcriterion=optimizer=optim.Adam(net.parameters(),num_epoches #设置epochcost #forepochinrunning_loss=fori,datainenumerate(trainloader,#inputs,labels= inputsinputs.view(-12828)设置RNN输入维度为(batchtime_step,input_size)##正 、反 outputs=loss=criterion(outputs,#running_loss+=ifi2000== #每隔2000mini-batchesprint('[%d,%5d]loss:%.3f'(epoch+1,i+1,running_loss/cost.append(running_loss/running_loss=。否则,梯度会累加,造成训练错误和失效。PyTorch能自动完成所有梯度计算。我们发现,PyTorch中RNN的训练代码与inputs=inputs.view(-1,28,inputs=inputs.view(-1,28,(batchtime_stepinput_size),即(42828)。[1,2000]loss:[1,4000]loss:[1,6000]loss:[1,8000]loss:[1,10000]loss:[1,12000]loss:[1,14000]loss:[2,2000]loss:[2,4000]loss:[2,6000]loss:[2,8000]loss:[2,10000]loss:[2,12000]loss:[2,14000]loss:[3,2000]loss:[3,4000]loss:[3,6000]loss:[3,8000]loss:[3,10000]loss:[3,12000]loss:[3,14000]loss:[4,2000]loss:[4,4000]loss:[4,6000]loss:[4,8000]loss:[4,10000]loss:[4,12000]loss:[4,14000]loss:[5,2000]loss:[5,4000]loss:[5,6000]loss:[5,8000]loss:[5,10000]loss:[5,12000]loss:[5,14000]loss:将所有Loss显然,随着迭代训练,Loss逐渐减小。correct=total=total+=correct+=(predicted==print('Accuracyofthenetworkonthe10000testimages:%.3f%%'(100*correct/ datainimages,labels=images=images.view(-1,28,outputs=_,predicted=AccuracyAccuracy
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人金融数据收益分享视角下央行数字货币的新计息设计
- 森林改培的首都生态与城市绿心考核试卷
- 农业科学中的农村社会良性互动考核试卷
- 物业门岗用工合同模板
- 图解现场安全教育知识考核试卷
- 大型酒店装修合同范例
- 任命委托合同范例
- 手工加工厂劳动合同范例
- 漂流施工合同模板
- 混凝土劳动合同范例
- 2024年四川省宜宾市中考地理试卷(含答案与解析)
- 黑龙江省哈尔滨市师大附中2024-2025学年高一上学期10月阶段性考试英语试题含答案
- 电力设备预防性试验规程
- 加强财务人才梯队建设的计划
- 4.3《课间》 (教案)-2024-2025学年一年级上册数学北师大版
- 2022年浙江温州中考满分作文《打破思维定势》
- 《无衣》(教学设计)-2024-2025学年高二语文选择性必修上册同步备课系列(统编版2019)
- 福建省历年中考语文现代文阅读真题17篇(含答案)(2003-2022)
- 小学科学评课稿科学课
- 审计模拟实训教程第四版马春静版部分答案
- 政务服务中心物业服务投标方案(技术方案)
评论
0/150
提交评论