首页 > 其他分享 >深度学习参数解释:epoch、batch、batch size、step、iteration等

深度学习参数解释:epoch、batch、batch size、step、iteration等

时间:2024-01-07 14:32:21浏览次数:29  
标签:训练 样本 iteration epoch batch step

  本文介绍在机器学习、深度学习的神经网络模型中,epochbatchbatch sizestepiteration等名词的具体含义。

  epoch:表示将训练数据集中的所有样本都过一遍(且仅过一遍)的训练过程。在一个epoch中,训练算法会按照设定的顺序将所有样本输入模型进行前向传播、计算损失、反向传播和参数更新。一个epoch通常包含多个step

  batch:一般翻译为“批次”,表示一次性输入模型一组样本。在神经网络的训练过程中,训练数据往往是很多的,比如几万条甚至几十万条——如果我们一次性将这上万条的数据全部放入模型,对计算机性能、神经网络模型学习能力等的要求太高了;那么就可以将训练数据划分为多个batch,并随后分批将每个batch的样本一起输入到模型中进行前向传播、损失计算、反向传播和参数更新。但要注意,一般batch这个词用的不多,多数情况大家都是只关注batch size的。

  batch size:一般翻译为“批次大小”,表示训练过程中一次输入模型的一组样本的具体样本数量。前面提到了,我们在神经网络训练过程中,往往需要将训练数据划分为多个batch;而具体每一个batch有多少个样本,那么就是batch size指定的了。

  step:一般翻译为“步骤”,表示在一个epoch中模型进行一次参数更新的操作。通俗地说,在神经网络训练过程中,每次完成对一个batch数据的训练,就是完成了一个step。很多情况下,stepiteration表示的是同样的含义。

  iteration:一般翻译为“迭代”,多数情况下就表示在训练过程中经过一个step的操作。一个iteration包括了一个step中前向传播、损失计算、反向传播和参数更新的流程。当然,在某些情况下,stepiteration可能会有细微的区别——有时候iteration是指完成一次前向传播和反向传播的过程,而step是指通过优化算法对模型参数进行一次更新的操作。但是绝大多数情况下,我们就认为二者是一样的即可。

  以上是对这些名词的解释,我们将他们带入实际的例子就更好理解了。

  假设我们现在有一个训练数据集(这个数据集不包括测试集),其中数据的样本数量为1500。那么,我们将这1500条数据全部训练1次,就是一个epoch。其中,由于数据量较大(其实1500个样本在神经网络研究中肯定不算大,但是我们这里只是一个例子,大家理解即可),因此我们希望将其分为多个batch,分批加以训练;我们决定每1批训练100条数据,那么为了将这些数据全部训练完,就需要训练15批——在这里,batch size就是100,而batch就是15。而前面我们提到,每次完成对一个batch数据的训练,就是完成了一个step,那么stepiteration就也都是15

  以上是我们对这一数据集加以1次训练(1epoch)的情况,而一般情况下我们肯定是需要训练多次的,也就是多个epoch。我们假设我们需要训练3epoch,相当于需要将这1500个样本训练3次。那么,stepiteration都会随着epoch的改变而发生改变——二者都变为45,因为15 * 3。但是,batch依然是15,因为其是在每一个epoch的视角内来看待的,和epoch的具体大小没有关系。

  至此,大功告成。

标签:训练,样本,iteration,epoch,batch,step
From: https://blog.51cto.com/fkxxgis/9134071

相关文章

  • 讲解'BatchNorm2d' object has no attribute 'track_running_stats'
    讲解'BatchNorm2d'objecthasnoattribute'track_running_stats'在使用深度学习框架PyTorch进行模型训练时,有时可能会遇到以下错误提示:plaintextCopycode'BatchNorm2d'objecthasnoattribute'track_running_stats'这个错误提示通常与PyTorch版本升级或代码中的一些配......
  • 深度学习原理与实战:批量归一化(Batch Normalization)的理解
    1.背景介绍深度学习是近年来最热门的人工智能领域之一,它是一种通过多层神经网络来处理大量数据并从中学习模式的技术。深度学习的一个主要挑战是训练深层网络的难度,这是因为深层网络容易受到梯度消失或梯度爆炸的影响。在深度学习中,神经网络的输入通常是从数据集中抽取的特征,这些特......
  • MyBatis batchInsert 批量插入数据
    mybatis是一个Java的持久层框架,它支持定制化SQL、存储过程以及高级映射。通过MyBatis,开发者可以直接编写原生态SQL,避免了JDBC代码的繁琐。如何在MyBatis中进行批量插入操作。下面是一个简单的例子,说明如何在MyBatis中配置和使用批量插入:Mapper接口:publicinter......
  • DrawCall、Batches、SetPassCalls
    详细看:https://blog.csdn.net/csuyuanxing/article/details/123005558https://blog.csdn.net/chqj_163/article/details/107675176一个batch是一个批次(cpu将一次渲染所需信息打包好准备发给gpu)一个drawcall是一次渲染指令的调用,基本等于batch,但可能受带宽的限制,一个大的batch......
  • ENVI56扩展工具:MCTK Batch(MODIS数据批处理工具)
    1重要声明安装本工具后,对于所有版本的ENVI,将提供MCTK原版工具功能。对于ENVI5.6及以上版本,将同时提供MCTKBatch批处理功能。批处理工具基于MCTK提供的API开发实现。MCTK工具英文说明:https://docs.qq.com/pdf/DSFFyVXJJZGhPTlhG 2工具安装方法1:使用ENVIApp......
  • 图像批量设计软件 Retrobatch Pro mac功能介绍
    RetrobatchMac是一款灵活的批量图像处理工具。用户可以自由创建Workflow来实现相应的功能,这些Workflow能取代大量的重复劳动,提高生产力。RetrobatchMac的一般操作是从左边栏拖动相应动作到工作区形成节点(Nodes),节点连接起来形成一个Workflow,最后运行这个Workflow即可。Retrobatch......
  • implement a parallel batch processing in X++ of Dynamics 365 F&O
    OneofthepowerfulfeaturesofDynamics365FinanceandOperationsisaBatchframework.Inthispost,Iexplainhowyoucanconvertyourexistingbatchjobtomulti-threadedtoincreaseitsperformance.InitialexampleLet'sconsiderthefollowing......
  • 无涯教程-批处理 - Batch Files – Inputs函数
    运行批处理文件时,它使您可以选择传递命令行参数,然后可以在程序中读取它们以进行进一步处理,可以使用%运算符以及参数的数字位置从程序中调用批处理文件参数,以下是定义命令行参数的方式。%0是所调用的程序名称。%1是第一个命令行参数。%2是第二个命令行参数。等到%9。让无涯教程看......
  • 无涯教程-批处理 - Batch Files – Pipes函数
    管道运算符(|)获取一个命令的输出(默认为STDOUT),并将其定向到另一命令的输入(默认为STDIN),如,以下命令对目录C:\的内容进行排序dirC:\|sort在此示例中,两个命令同时启动,但随后sort命令暂停,直到收到dir命令的输出,sort命令使用dir命令的输出作为输入,然后将其输出发送到句柄1(即S......
  • epoch
    在机器学习中,一个epoch是指对整个训练数据集进行一次完整的训练。在训练神经网络时,一次完整的训练周期会经过所有的训练样本,然后根据模型的权重进行参数更新。训练数据集通常被分成小批次(minibatches)进行处理,每个小批次包含一组训练样本。在一个epoch中,模型会逐批次地处理训......