- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
(p1)
本节课我们来讲解实践任务3FashionMNIST识别网络训练
在开始模型训练前,我们需要设置损失函数和优化器
我们可以使用torch.nn模块自带的CrossEntropy损失,
PyTorch会自动把整数型的label转为one-hot型,
用于计算交叉熵损失。
这里需要确保label是从0开始的,
同时模型不加softmax层,
这也说明了PyTorch训练中各个部分不是独立的,需要全盘考虑。
(p2)
这行代码定义了一个交叉熵损失函数,
用于计算模型的预测值与真实标签之间的差距。
交叉熵损失函数通常用于多分类问题
,可以有效地惩罚模型对错误类别的预测,并提高模型的分类精度。
在使用交叉熵损失函数时,
我们需要将模型的输出结果与真实标签作为输入,
计算损失值并反向传播误差,以更新模型的参数。
(p3)
接着我们来设置优化器
这行代码定义了一个Adam优化器,用于更新模型的参数。
在深度学习模型中,优化器是用于最小化损失函数的一种算法,
其目标是通过调整模型的参数,使损失函数最小化,
从而提高模型的准确性和泛化能力。
Adam是一种自适应学习率优化算法,
能够根据每个参数的梯度自适应地调整其学习率,
从而提高训练效率和准确性。
在使用Adam优化器时,我们需要将模型的参数和学习率作为输入,
通过反向传播算法计算梯度并更新模型的参数。
这样,模型就能够在训练过程中自适应地调整参数,最小化损失函数,提高模型的性能。
(p4)
完成了损失函数和优化器的定义后,我们来一起看一下训练函数如何编写
这段代码定义了一个训练函数train(epoch),
用于训模型。该函数包括以下步骤:
首先使用model.train()将模型设置为训练模式,
以便在训练过程中启用dropout等操作。
接下来我们来看for循环中的代码,
对于每个batch的数据,
我们首先将其移动到GPU上进行计算,
然后使用optimizer.zero_grad()将模型的参数梯度清零,
再进行前向传播计算输出结果,
使用criterion(output,label)计算损失函数,
然后使用loss.backward()和optimizer.step()进行反向传播计算梯度并更新模型参数。
这一步是训练模型的核心步骤,
通过计算损失函数并反向传播误差,
模型能够自适应地调整参数,
最小化损失函数,提高模型的准确性和泛化能力。
train_loss记录的是所有batch的损失值之和。
(p5)
将train_loss除以训练集的总样本数,
得到每个样本的平均损失。
这一步是为了计算模型在整个训练集上的平均损失,
以便评估模型的训练效果。
最后使用print函数输出当前epoch的训练结果,
包括当前epoch的编号和平均训练损失。
这一步是为了在训练过程中实时监控模型的训练效果,以便进行调整和优化。
(p6)
我们再来简单讲解下训练卷积神经网络过程中需要注意的点:
一数据增强:在训练卷积神经网络之前,通常需要对训练数据进行数据增强。
数据增强是通过应用一系列随机变换(如随机旋转、随机翻转、随机裁剪等)来扩充训练数据集,
以增加模型的泛化能力。数据增强可以帮助模型更好地适应各种变化和噪声。
二学习率的调整:学习率是训练卷积神经网络的一个重要超参数,需要适时地调整学习率,
以避免模型陷入局部最优解或者训练过程不稳定。
常见的学习率调整策略包括学习率衰减、动态调整学习率等。
三批量归一化:批量归一化是一种有效的正则化方法,
可以加速训练过程并提高模型的准确性和泛化能力。
批量归一化通过在每一层的输入上进行归一化操作,
使得网络层之间的分布更加稳定,有助于缓解梯度消失和梯度爆炸问题。
四使用预训练模型:在训练卷积神经网络之前,可以使用预训练模型进行参数初始化。
预训练模型是在大规模数据集上训练得到的模型,具有较好的特征提取能力。
通过使用预训练模型进行参数初始化,可以加速训练过程和提高模型的准确性。
五梯度裁剪:在训练卷积神经网络时,梯度爆炸和梯度消失问题可能会影响模型的训练效果。
梯度裁剪是一种常用的解决方法,通过对梯度进行剪切,使其在一定范围内,
以避免梯度过大或过小对模型的训练造成不良影响。
(p7)
最后我们再来总结一下,训练卷积神经网络模型的技巧
第一点是正则化:在训练卷积神经网络时,
使用正则化方法可以避免模型过拟合,提高模型的泛化能力。
二是选择合适的损失函数:选择合适的损失函数对于训练卷积神经网络非常重要,
常用的损失函数包括交叉熵损失函数、均方误差损失函数和对比损失函数等。
三是提前停止:在训练卷积神经网络时,
可以使用提前停止技术来避免模型过拟合,提高模型的泛化能力。
四是参数初始化:在训练卷积神
您可能关注的文档
- 深度学习案例教程 教案全套 钱月钟 第1--9章 深度学习简介--语音识别.docx
- 深度学习案例教程 教案1.3 深度学习的发展.docx
- 深度学习案例教程 教案1.1 人工智能与机器学习.docx
- 深度学习案例教程 教案1.6 深度学习的应用领域-自然语言的处理.docx
- 深度学习案例教程 教案1.2 深度学习定义及分类.docx
- 深度学习案例教程 教案1.5 深度学习的应用领域-计算机视觉.docx
- 深度学习案例教程 教案1.4 深度学习的应用领域-语音识别.docx
- 深度学习案例教程 教案1.8 深度学习框架介绍.docx
- 深度学习案例教程 教案1.7 深度学习的特点.docx
- 深度学习案例教程 教案2.2PyTorch安装和Pycharm安装.docx
- 苏教版8年级上册数学全册教学课件(2021年10月修订).pptx
- 比师大版数学4年级下册全册教学课件.pptx
- 冀教版5年级上册数学全册教学课件.pptx
- 办公室普通党员2024年组织生活会个人对照检查发言材料供参考.docx
- 领导班子成员2025年组织生活会“四个带头”对照检查材料范文.docx
- 2024年度专题组织生活会个人“四个带头”对照检查材料范文.docx
- 党支部领导班子2025年民主生活会“四个带头”个人对照检查材料范文.docx
- 2024年抓基层党建工作述职报告参考范文.docx
- 2024年度民主生活会征求意见情况的报告范文2篇.docx
- 普通党员2024年组织生活会个人“四个带头”对照检查发言材料2篇.docx
最近下载
- GB3836-2隔爆型“d”《爆炸性气体环境用电气设备》.doc VIP
- 全过程咨询技术标-监理大纲篇.docx
- 2024年二建《机电》真题及参考答案.doc
- GB_T 3836.28-2021爆炸性环境规范.docx VIP
- 北京市西城区2024_2025学年高一语文下学期期末考试试题含解析.doc VIP
- “以校为本”发展性督导评价研究 _ 以上海市新光中学为个案.pdf
- 基于stm32的仓库环境监测系统的设计与实现.docx
- 07FK01~02防空地下室通风设计示例-防空地下室通风设备安装(合订本).pdf
- 2025届高考语文复习:散文知识点梳理.pdf VIP
- 2025年全国公路养护初级_中级_高级工理论模拟试题及答案.pdf VIP
文档评论(0)