1 epoch

  • 数据集中的全部数据样本通过神经网络一次并且返回一次的过程即完成一次训练称为一个epoch。
  • 当我们分批学习时,每次使用过全部训练数据完成一次Forword运算以及一次BP运算,称为完成了一次epoch。
  • epoch时期 = 所有训练样本的一个正向传递和一个反向传递。

为什么要设置多个epoch?

  • 因为在神经网络中传递完整的数据集一次是不够的,而且我们需要将完整的数据集在同样的神经网络中传递多次。我们使用的是有限的数据集,并且我们使用一个迭代过程即梯度下降,优化学习过程和图示。因此只更新权重一次或说使用一个 epoch 是不够的。

2 batch

在不能将数据一次性通过神经网络的适合,就需要将数据集分成几个batch。
Iteration:1次iteration即迭代1次,也就是用batch_size个样本训练一次。
一个迭代=一个正向通过+一个反向通过。
每一次迭代得到的结果都会被作为下一次迭代的初始值.

3 batchsize

每批数据量的大小,批量大小将决定我们一次训练的样本数目。
batch_size将影响到模型的优化程度和速度
用优化算法进行训练,也就是1 次iteration一起训练batch_size个样本,计算它们的平均损失函数值,来更新一次参数。

为什么需要有batchsize?
batchsize的正确选择是为了在内存效率和内存容量之间寻找最佳平衡。


4 区别

深度学习中经常看到epoch、iteration和batchsize,下面说说这三个区别:

(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
(2)iteration:1个iteration等于使用batchsize个样本训练一次;
(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;

示例

一个excel中包括200个样本(数据行)的数据,选择batch_size=5, epoch=1000, 则batch=40个,每个batch有5个样本,一次epoch将进行40个batch或40次模型参数更新,1000个epoch,模型将传递整个数据集1000次,在整个训练过程中,总共有40000次batch.

mnist 数据集有 10000 张训练数据,10000 张测试数据。现在选择 Batch_Size = 100 对模型进行训练。
每个 epoch 要训练的图片数量:10000(训练集上的所有图像)
训练集具有的 batch 个数: 10000/100=100
每个 epoch 需要完成的 batch 个数: 100
每个 epoch 具有的 Iteration 个数: 100(完成一个batch,相当于参数迭代一次)
每个 epoch 中发生模型权重更新的次数:100
训练 10 个epoch后,模型权重更新的次数: 100*10=1000
不同epoch的训练,其实用的是同一个训练集的数据。第1个epoch和第10个epoch虽然用的都是训练集的10000图片,但是对模型的权重更新值却是完全不同的。因为不同epoch的模型处于代价函数空间上的不同位置,模型的训练代越靠后,越接近谷底,其代价越小。
总共完成10000次迭代,相当于完成了 10000/100=100 个epoch

batch_size的选择原则:batch_size越大,batch越少,需要迭代的次数越少,训练时间越短。
batch_size越小,batch数量越多,耗时久,计算机占用内存大。

神经网络中epoch、batch、batchsize相关推荐

  1. [深度学习] 神经网络中的 batch 和 epoch

    参考文章为 神经网络中Batch和Epoch之间的区别是什么? Sample Sample是单个数据.即有意义的数据的最小单位. 训练数据集由许多Sample组成. batch batch是一个人为设 ...

  2. 【CV】深度学习中Epoch, Batch, Iteration的含义

    Epoch 使用训练集的全部数据样本进行一次训练,称为一次epoch,即所有训练集的样本都在神经网络中进行了一次正向传播和一次反向传播 神经网络中需要有多次epoch,每次epoch中会进行一次更新权 ...

  3. 深度神经网络中的Batch Normalization介绍及实现

    之前在经典网络DenseNet介绍_fengbingchun的博客-CSDN博客_densenet中介绍DenseNet时,网络中会有BN层,即Batch Normalization,在每个Dense ...

  4. 神经网络中使用Batch Normalization 解决梯度问题

    BN本质上解决的是反向传播过程中的梯度问题. 详细点说,反向传播时经过该层的梯度是要乘以该层的参数的,即前向有: 那么反向传播时便有: 那么考虑从l层传到k层的情况,有: 上面这个 便是问题所在.因为 ...

  5. 神经网络中的Epoch、Iteration、Batchsize

    总结:epoch=iteration∗batch_sizeepoch = iteration * batch\_sizeepoch=iteration∗batch_size 1.batch_size ...

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

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

  7. 深度学习中的Epoch,Batchsize,Iterations深刻理解

    [嵌牛导读]Epoch,Batchsize,Iterations,这三个都是深度学习训练模型时经常遇到的概念.你一定有过这样的时刻,面对这几个词傻傻分不清楚,这三个概念究竟是什么,它们又有什么区别? ...

  8. 深度强化学习中的episode、epoch、batch-size、iteration

    深度强化学习中的episode.epoch.batch-size.iteration batch_size iteration epoch episode batch_size 即批大小,如果把全部数 ...

  9. Batchsize不够大,如何发挥BN性能?探讨神经网络在小Batch下的训练方法

    由于算力的限制,有时我们无法使用足够大的batchsize,此时该如何使用BN呢?本文将介绍两种在小batchsize也可以发挥BN性能的方法. 本文首发自极市平台,作者 @皮特潘,转载需获授权. 前 ...

最新文章

  1. 分析与解决:MySQL分区表复制bug导致的主从延迟
  2. 技术选型之Docker容器引擎
  3. 2009-12-12
  4. LVS负载均衡下session共享的实现方式-持久化连接
  5. 接口 Closeable
  6. 《人工智能如何走向新阶段》大家谈(跟帖,续)
  7. android sleep_android实现下拉刷新动画水滴效果
  8. CentOS系统找回MySQL数据库root登录密码
  9. WEB 开发前传——js笔记
  10. C语言里面邻接表的创建
  11. Zepto.js 使用手册
  12. 微信开通检测软件使用心得与技巧
  13. android手机的短信文件,手机短信下载的文件在哪里(教你如何查看手机短信内容)...
  14. 《批判性思维工具》—— 阅读内化(5)
  15. 苹果手机投屏win10电脑
  16. centos有道linux安装,centos7安装有道词典(不能发音和取词)
  17. 浏览器播放RTSP、RTMP等几种编码格式视频流
  18. R语言使用cor函数计算dataframe中多个数值数据列之间的相关性系数、计算spearman非参数的等级相关性系数
  19. Complex Multiplier IP 使用教程(源码)
  20. css样式 向下补白,CSS尺寸与补白

热门文章

  1. windows 服务程序和桌面程序集成(一)
  2. NOIP2009 普及组 复赛 poly 多项式输出
  3. 适合编程初学者的开源博客系统
  4. android配置阿里云仓库
  5. UltraScale时钟资源和时钟管理模块
  6. Linuxserver沦陷为肉鸡的全过程实录
  7. Linux运维养成记-服务器安全运维
  8. @requestParam与@Param区别
  9. 先卸载 nvidia-387.26驱动,再安装nvidia-384.81 驱动
  10. linux下/proc/pid/maps和pmap命令详解