




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实践任务2-全连接神经网络模型搭建1定义全连接神经网络
在PyTorch中,
torch.nn是专门为神经网络设计的模块化接口,,可以用于定义和运行神经网络。
nn.Module是nn库中十分重要的类,它包含网络各层的定义以及forward函数。
只要在nn.Module的子类中定义forward函数,backward函数就会被自动实现(利用autograd)。
实践任务2-全连接神经网络模型搭建1定义全连接神经网络
importtorch.nnasnn#导入nn库
classNeuralNet(nn.Module):
def__init__(self,input_num,hidden_num,output_num):
super(NeuralNet,self).__init__()
self.fc1=nn.Linear(input_num,hidden_num)
self.fc2=nn.Linear(hidden_num,output_num)
self.relu=nn.ReLU()
defforward(self,x):
x=self.fc1(x)
x=self.relu(x)
y=self.fc2(x)
returny
实践任务2-全连接神经网络模型搭建1定义全连接神经网络
#设置参数
epoches=20
lr=0.001
input_num=784
hidden_num=500
output_num=10
device=torch.device("cuda"iftorch.cuda.is_available()else"cpu")
#创建网络模型
model=NeuralNet(input_num,hidden_num,output_num)
print(model)实践任务2-全连接神经网络模型搭建1定义全连接神经网络
运行后输出如下:NeuralNet((fc1):Linear(in_features=784,out_features=500,bias=True)(fc2):Linear(in_features=500,out_features=10,bias=True)(relu):ReLU())实践任务2-全连接神经网络模型搭建2前向传播
定义好网络模型后,我们会将所有的数据按照batch的方式进行输入,得到对应的网络输出,这就是所有的前向传播。
实践任务2-全连接神经网络模型搭建2前向传播
#前向传播
images=images.reshape(-1,28*28)
image=images[:2]
label=labels[:2]
print(image.size())
print(label)
out=model(image)
print(out)实践任务2-全连接神经网络模型搭建2前向传播
运行程序输出的结果如下:torch.Size([2,784])tensor([0,6])tensor([[0.1336,0.2989,0.1140,-0.0331,0.1986,-0.1656,-0.1346,0.1204,-0.3536,0.2364],[0.3198,0.3422,-0.2137,0.2526,0.3694,-0.0444,-0.1710,-0.0321,0.1679,-0.2004]],grad_fn=<AddmmBackward0>)实践任务2-全连接神经网络模型搭建
3计算损失
损失函数需要一对输入:模型输出和目标,用来评估输出值和目标值之间的差距,损失函数用loss表示,损失函数的作用就是计算神经网络每次迭代的前向计算结果和真实值之间的差距,从而指导模型下一步训练往正确的方向进行。常见的损失函数有交叉熵损失函数和均方误差损失函数。实践任务2-全连接神经网络模型搭建3计算损失在PyTorch中,nn库模块提供了多种损失函数,常用的有以下几种:1.处理回归问题的nn.MSELoss函数,2.处理分类问题的nn.BCELoss函数,3.处理多分类问题的nn.CrossEntropyLoss函数。实践任务2-全连接神经网络模型搭建3计算损失#定义损失函数
criterion=nn.CrossEntropyLoss()
loss=criterion(out,label)
print(loss)实践任务2-全连接神经网络模型搭建
4反向传播与参数更新
当计算出一次前向传播的loss值之后,可进行反向传播计算梯度,以此来更新参数。在PyTorch中,对loss调用backward函数即可。backward函数属于torch.autograd函数库,在深度学习过程中进行反向传播,计算输出变量关于输入变量的梯度。最后要做的事情就是更新神经网络的参数,最简单的规则就是随机梯度下降,公式如下:weight=weight-learningrate×gradient当然,还有很多不同的更新规则,类似于SGD、Adam、RMSProp等,为了让这些可行,PyTorch建立了一个torch.optim包,调用它可以实现上述任意一种优化器。实践任务2-全连接神经网络模型搭建
4反向传播与参数更新#创建优化器
importtorch.optimasoptim
optimizer=optim.SGD(model.parameters(),lr=0.01)#lr代表学习率
criterion=nn.CrossEntropyLoss()
#在训练过程中
image=images[:2]
l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超市员工2025年度环境与职业健康合同
- 二零二五拼多多商家入驻合同范本:电商合作细节解析
- 二零二五年度城市广场绿化维护个人服务合同
- 2025年度通信工程施工现场环境保护合同
- 2025年度茶叶文化研究及出版合作协议
- 二零二五年度民办学校教职工校企合作与产学研用合同
- 冷库租赁与冷链物流信息化管理服务协议2025
- 二零二五年度个人委托代付款安全无忧服务合同
- Unit 8 How are you?Period 3 词汇与语法过关 同步练习(含答案)
- 2025年西安货运从业资格考试题目大全及答案
- 下载完整版的离婚协议书
- 2023年云南省中考物理试题(含答案)
- 小儿麻醉术前准备课件
- 急诊科运用PDCA循环缩短严重创伤病人在抢救室的停留时间品管圈成果汇报
- 国家企业技术中心附件要求说明
- 大数据思维与技术知到章节答案智慧树2023年北京理工大学
- 中等专业学校毕业生登记表
- 浅析小学英语主题意义探究下的单元整体教学 论文
- 天车维修保养记录表
- 2023年第27届希望杯〞八年级全国数学邀请赛试卷与参考答
- ISO9001-2015质量管理体系文件全套质量手册、程序文件
评论
0/150
提交评论