- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
1.神经网络的训练步骤和循环
神经网络的训练步骤:
(1)定义神经网络的结构和前向传播的输出结果Network
(2)定义损失函数以及选择反向传播优化的算法loss_function/optimizer
(3)生成会话并在训练数据上反复运行反向传播优化算法Batchsize/Epochs
前向传播的作用:
输入数据经过多层神经元计算后得到一个预测输出值,一般代码定义的是前向传播。
反向传播:
把前向传播预测输出值和真实的值对比计算loss,通过loss和优化器反向更新神经元的权重,在代码中只需要实现loss和optim即可,自动化。
2.损失函数和优化器
损失函数:
用来计算神经网络每次迭代的前向计算结果与真实值的差距,从而指导下一步的训练向正确的方向进行。优化器用来优化神经网络权重,从而增加模型拟合度,降低loss。
常用的损失函数:
梯度下降(GradientDescent)
梯度下降(GradientDescent)是神经网络毕竟重要的部分,因为通常利用梯度来利用costfunction(成本函数)进行backpropagation(反向传播),不断地iteration、更新权重,偏置参数找到损失最低点,然后最终使模型达到更优的效果。
常见的优化器:
(1)SGD:
是最基础最常用的优化器,如果传进去的数据只采用一部分,就是SGD方法,然后一部分一部分的去学习,这样子可以更快的去达到学习的效果。
(2)Momentum
不仅仅考虑了当前步的学习效率,还是考虑了上一步的学习趋势,所以比SGD更加快速。
(3)Adam
计算m时有momentum下坡的属性,计算v时有adagrad阻力的属性,然后再更新参数时把m和v都考虑进去,实验证明,大多数时候,使用adam都能又快又好的达到目标、迅速收敛。
3.Mnist手写数据集项目实战(jupyternotebook上运行)
import?torch
import?torch.nn?as?nn
import?torch.nn.functional?as?F
import?torchvision
from?torchvision?import?transforms
from?PIL?import?Image
import?numpy?as?np
import?matplotlib.pyplot?as?plt
from?torch.utils.data?import?Dataset,?DataLoader
transformer?=?transforms.Compose([
????transforms.ToTensor()
])
train_dataset?=?torchvision.datasets.MNIST(/mnist,?train?=?True,?download?=?True,?transform?=?transformer)
val_dataset?=?torchvision.datasets.MNIST(/mnist,?train?=?False,?download?=?True,?transform?=?transformer)
train_dataloader?=?DataLoader(train_dataset,?batch_size?=?64,?shuffle?=?True)
val_dataloader?=?DataLoader(val_dataset,?batch_size?=?64,?shuffle?=?True)
image,?label?=?next(iter(train_dataloader))
image.shape
plt.figure(figsize?=?(16,?8))
for?i?in?range(8):
????img?=?image[i].numpy()
????img?=?np.squeeze(img)
????lb?=?label[i].numpy()
????plt.subplot(2,?4,?i?+?1)
????plt.title(lb)
plt.imshow(img)
运行效果截图:
#?模型构建法1:
#?class?IMnet(nn.Module):
#?????def?__init__(self):
#?????????super(IMnet,?self).__init__()
#?????????self.conv1?=?nn.Conv2d(1,?32,?kernel_size?=?3)
#?????????self.conv2?=?nn.Conv2d(32,?64,?kernel_size?=?3)
#?????????self.pool?=?nn.MaxPool2d(2,?2)
#???????
您可能关注的文档
- 光学系统集成.docx
- 机器视觉主要硬件参数详解.docx
- 机器人运动学中的非完整约束与运动模型推导.docx
- 计算摄影学基石:相机成像原理.docx
- 如何优化深度学习模型.docx
- 机器视觉在轮胎检测中的应用.docx
- 基于Transformer的多模态BEV融合方案.docx
- 这些图像传感器如何选?先get这五大要点√.docx
- “分类”“聚类”傻傻分不清楚.docx
- 算法基础-数据预处理和特征工程.docx
- 2025年全国爱国卫生月活动总结(28篇).docx
- 2025年公交驾驶员年终总结(6篇).docx
- 2025年公司年度行政工作计划(31篇).docx
- 知到智慧树网课:C语言编程新思路(山东理工大学)章节测试满分答案.pdf
- 《毛泽东思想和中国特色社会主义理论体系概论》专题测试参考答案.docx
- 知到智慧树网课:C语言编程方法与思想(北京航空航天大学)章节测试满分答案.docx
- 知到智慧树网课:大学英语课程思政(哈工)章节测试满分答案.docx
- 2025年二级建造师法规章节精编习题库.pdf
- 2025年二级建造师法规章节精编习题库.doc
- 2025年北京市三类人员安全员c3证考试题库及答案.doc
文档评论(0)