训练过程种Batch, Iteration,Epoch概念理解

以Mnist数据集为例,Mnist数据集共有6000张训练样本。假设现在选择 Batch_Size = 100对模型进行训练。则:

整个样本被分成了:6000/100=600个Batch
每个Batch的Batch_size=100
训练一个Batch就是一次Iteration(迭代)
所有6000张图片都训练一次的过程叫一个Epoch
每个Epoch中有6000/100=600个Batch

假设训练了50个Epoch,则:

共迭代了50*600=30000次

参考:深度学习 | 三个概念:Epoch, Batch, Iteration

小结:
Batch:数据集划分角度。将整批数据划分成一批一批
Iteration, Epoch:训练角度。训练时,训练一个batch数据叫一个Iteration;训练完一次整批数据叫一个Epoch。

为什么要分成多个Batch呢?

batch概念

batch字面上是批量的意思,在深度学习中指的是计算一次cost需要的输入数据个数。
在batch可以认为上述cost计算公式中的m。
如果数据集比较小,可以将全体数据看做一个batch,即把数据集中每个样本都计算loss然后取其平均值当做cost。

为什么要分成多个Batch呢?

在训练模型时,如果数据集比较大,一次性将所有样本输入去计算一次cost存储会吃不消,因此会采用一次输入一定量的样本来进行训练。 所以Batch就是指计算一次cost需要的样本个数。将每个样本都计算cost后,求平均值,就是整个Batch的cost。
遍历全部数据计算损失函数(将整个数据当作一个batch),然后算函数对各个参数的梯度,然后更新参数。这称为Batch gradient descent,批梯度下降。这种方法缺点很明显,计算量大,吃内存,不适用与在线学习。
每看一个数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降,stochastic gradient descent。这种方法比较快,但是由于迭代一次仅依靠单一样本,这样很容易在相邻的两次迭代计算的梯度差距非常大,甚至方向相反,因此容易不收敛。
  另一种就是将上述两种方法的折中,称为mini-batch gradient decent。将数据集分成一定数量的批,梯度不容易跑偏容易收敛,同时减少了一次处理的数据数量,因而计算量也小了很多,速度较快。
参考:深度学习batch的理解

为什么训练时要用多个Epoch呢?

虽然不同的Epoch用的训练图片相同,但是模型的权重值却是完全不同的。不同代的模型处于代价函数空间上的不同位置。

Batch, Iteration,Epoch概念理解相关推荐

  1. 几句话明白:神经网络中的基本概念batch,epoch,iterations及对训练效果的影响

    ###神经网络中的基本概念batch,epoch,iterations及对训练效果的影响 自己一直很迷糊,这几个关键词也是傻傻分不清楚,为了彻底搞明白,所以用文字记录: batch:批,一次网络训练读 ...

  2. 训练Epoch, Batch, Iteration

    4.关于训练Epoch, Batch, Iteration. 名词 定义 Epoch 使用训练集的全部数据进行一次完整的训练,简称"一代训练" Batch_size 使用数据集中指 ...

  3. 批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)及 batch、epoch、iteration

    先介绍一下梯度下降:梯度下降是一种用于机器学习训练参数的一种优化方法.对损失函数进行梯度下降,"梯度"指误差梯度或误差斜率,"下降"指沿着误差斜率移动到误差较小 ...

  4. Batch和Epoch之间的区别是什么?

    写在前面(快速理解): · 随机梯度下降(SGD)是一种迭代学习算法,它使用训练数据集来更新模型. · Batch(批量)大小是梯度下降算法的超参数,在模型的内部参数更新之前控制训练样本的数量,一个周 ...

  5. 深度学习中IU、IoU(Intersection over Union)的概念理解以及python程序实现

    from: 深度学习中IU.IoU(Intersection over Union)的概念理解以及python程序实现 IoU(Intersection over Union) Intersectio ...

  6. 高性能计算中并行的概念理解

    高性能计算中并行的概念理解 分类: 并行计算高性能计算HPC - General2011-11-09 22:54 932人阅读 评论(0) 收藏 举报 编译器编程parallel优化formsvect ...

  7. 目标检测基本概念理解之IoU(交并比)以及Python代码实现

    目标检测基本概念理解之IoU(交并比) 交并比理解 Python代码实现 计算IoU,矩形框的坐标形式为xyxy 计算IoU,矩形框的坐标形式为xywh 交并比理解 在检测任务中,使用交并比(Inte ...

  8. 神经网络中Batch和Epoch之间的区别

    来自蜂口知道公众号 随机梯度下降法是一种具有大量超参数的学习算法.通常会使初学者感到困惑的两个超参数: Batch大小和Epoch数量,它们都是整数值,看起来做的事情是一样的.在这篇文章中,您将发现随 ...

  9. Hadoop:HDFS的概念理解和体系架构-成都加米谷大数据分享

    HDFS是什么? HDFS 全称 Hadoop Distributed File System ,简称HDFS,是一个分布式文件系统.它是谷歌的GFS提出之后出现的另外一种文件系统.它有一定高度的容错 ...

  10. muck数据的概念理解

    muck数据的概念理解 所谓muck表示"模仿","假的":也可翻译为mock-test. 很多项目案例的讲解中,经常会提及muck数据.muck对象.muck ...

最新文章

  1. linux内核报告,Linux升级内核报告.docx
  2. Mac下使用svn命令
  3. socketmq 设置队列大小_C++编程实例:面向对象的整形队列实现
  4. android string.xml中%1$s、%1$d等的用法
  5. arrays.sort(._Arrays.sort与Arrays.parallelSort
  6. 是否可以在最终课程中使用抽象方法?
  7. Supervisord进程管家
  8. 工作217:重置逻辑
  9. (需要大神,请求解决,遇见runtime error 错误)poj 1009 java
  10. 使用CentOS光盘镜像作为YUM源安装rpm软件包
  11. 【直播预告】阿里特邀专家关键:Java无锁集合代码分析...
  12. [数据结构] 非旋Treap
  13. CCNA学习指南 无线技术
  14. MATLAB 创建function函数,主程序打不开function函数所在的.m文件怎么办?
  15. c#窗体编辑个人简历_3年工作经验.net程序员简历应该怎么写
  16. hadoop之MapReduce统计选修课程人数,不及格门数,选课人数
  17. Extjs中加载异步树的最简单例子实现
  18. 洛谷:P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins(DFS)
  19. 剖析Framework面试-笔记(二)
  20. 青岛 android培训哪家好,青岛android培训学习班

热门文章

  1. 写高性能 Web 应用程序的 10 个技巧 转自微软资料 .
  2. 木.马查杀-应急工具-排查步骤
  3. Canvas 实现小程序动画
  4. ARTS打卡计划第一周-Tips-ControllerAdvice的使用
  5. 面向开发者的最佳 Android 库列表
  6. SQL代码自动生成器
  7. vs多项目模板及add-in开发
  8. WP7 手机软件纪念 - 稍后读软件
  9. Python自然语言处理学习笔记(23):3.7 用正则表达式文本分词
  10. JavaBean实现简单登录功能