- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
02批处理的原理
(p9)我们本节课来学习批处理。什么是批处理呢?在深度学习任务中,批处理batchprocessing是一种重要的技术,用于有效的处理大量的数据并进行模型训练。下面我们来详细介绍一下。提出来的背景以及它的原理,还有如何使用。
(p10)在模型训练的时候,一种方法是一个样本一个样本训练,也就是一个样本计算之后,计算出损失值,然后更新所有参数,然后继续下一个样本。这样的方式会导致,如果出现一些极端的样本,或者异常者,则会使得参数调整出现问题。另外这样的方式模型训练速度也比较慢,参数调整是震荡式的,可能一会儿大,一会儿小,不够稳定。
批处理是指将一定数量的样本一起输入到模型中,进行前向传播和反向传播。通常一个批次由多个样本组成,比如16个、32个64个等,需要根据数据量以及内存显存的大小具体设置。每个样本都是一个输入特征和对应的标签。通过批处理,模型可以根据每个批次的误差进行参数更新,从而逐渐优化模型。因为输入的是多个样本,参数更新是拟合这一批样本的总体趋势,这样就减小了异常值的影响,另外参数更新的频率降低了,因为不是每一个样本都会更新一次参数,这样模型训练速度也会提高。举个例子,比如右图的x1,x2,x3是一个样本的3个维度的数字,这是一个属于一个样本,而批处理输入的就是多组这样的数字。
(p11)批处理广泛应用于深度学习任务中。包括图像分类、目标检测、语音识别等等。在这些任务中,大量的数据被划分为小批次,并通过反向传播算法更新模型参数,从而实现模型的训练和优化。
(p12)下面我们来看一下批处理的实现步骤,我们将批处理分为三个步骤,
第一个步骤是数据准备,将数据集划分为小批次。并对数据进行预处理,比如说像对一化数据增强等等。
第二个步骤是批处理迭代,对每个批次进行前向传播和反向传播,计算损失函数并更新模型参数。
第三个步骤是训练迭代。重复批处理迭代的过程,直到完成所有的训练轮次或达到停止条件。
(p13)我们下面来看一段代码。
它就是一个批处理的过程。首先它导入了我们相关的包,导入了我们torch的包,以及我们用来加载数据的dataloader。
首先第一步,我们加载数据集啊,然后进行预处理啊。这里是伪函数,作为参考。因为我们还没有制作好数据集,后面课程会讲到如何准备数据。
然后指定我们这个批次大小为32,并在dataload中,设置了批处理的大小为32。因为pytorch已经定义好了数据集的整个架构,我们只需要使用DataLoader这个函数,就可以调用这个架构,在其中设置这一个参数就可以完成批处理的设置。需要注意的是,具体批大小的选择并没有明确的规定,作为一个超参数,需要大家不断尝试才能寻找到最优的数值。
(p14)下面是训练阶段批处理的方式。这里我们首先定义好模型,这里也是一个伪函数,然后下一行配置好优化器。接下来2层for循环,里面涉及到了批处理。外面这一层循环,每一次表示对整个数据集训练一遍,里面的for循环每一次对一批的数据进行训练。我们可以看到每次循环,都从data_loader这个数据管理器里面拿一批数据出来,拿出来的东西,包括batch_samples,就是一批样本,还有batch_labels就是这一批样本的标签,具体的样本个数就是前面我们设置好的batchsize就是32.下一步就是吧一批样本通过模型计算得到预测标签outputs,然后下一步,计算预测值与真实值的差距,计算损失值,后面三句就是反向传播更新参数了。
(p15)神经网络的训练中,我们对批样本的处理还需要做batchnormalization,也就是归批一化处理。这是一种常用的深度学习技术,主要用于加快神经网络的训练速度,并提高模型上的性能和稳定性。
它是一种在神经网络中对输入进行规范化的技术。它主要通过计算批次数据的均值和标准差。将输入数据进行标准化。使每个特征维度具有零均值和单位方差的一个分布。可以应用于神经网络中的任意层。
(p16)那为什么需要这个批归一化呢?
我们从两个方面来分析,首先第一个是梯度消失与梯度爆炸的问题。那在我们深层神经网络中,由于梯度的连成效应。梯度可能会变得非常小,或者说非常大,导致这个训练过程中的梯度消失或梯度爆炸的问题。比如我们用右边这个sigmoid函数作为激活函数,他的导数只有在0附近大一点,其他地方的导数几乎为0,而且我们的网络一般是很多层的,经过了过层之后,这个导数就会很小了,这就会造成梯度消失,那就是参数更新会很慢。批归化可以缓解这些问题,让这个梯度啊更加稳定,去加速这个训练过程,
那第二个是内部斜变量偏移。在每一层的输入分布发生变化的时候,网络它需要不断适应新的输入分布,这会降低训练的速度和效果。批归一化通过对每个批次的输入进行标准化啊,减少这个内部斜变量偏移的影响,提高
您可能关注的文档
- 深度学习案例教程 教案全套 钱月钟 第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
最近下载
- 《预防犯罪》精品课件.pptx
- 乐山市高中2025届第一次调查研究考试(一调) 生物试卷(含答案解析).docx
- 2024年湖南省普通高中学业水平合格性考试语文含答案 .pdf VIP
- 2025年全国重点高中黄冈中学自主招生(理科实验班)预录考试化学-模拟试题(A卷.pdf VIP
- 《运动损伤与康复》王国祥 4第四章 头颈部运动损伤与康复.ppt VIP
- 血鹦鹉的分类与造景.ppt
- GCr15轴承钢小方坯连铸低倍缺陷分析与控制.pdf
- 口腔 笑气护理配合课件.pptx
- 2025四川宜宾三江汇智人力资源服务有限公司三江新区第一次招聘编外人员34人笔试备考试题及答案解析.docx
- 高考词汇 考纲 3500词 乱序版 excel表格背诵 .pdf VIP
文档评论(0)