深度学习中epoch、batch、batch size和iterations详解

简介: 深度学习中epoch、batch、batch size和iterations详解

1.epoch

在训练一个模型时所用到的全部数据;

备注:一般在训练时都要使用多于一个的epoch,因为在神经网络中传递完整的数据集仅仅一次是不够的,只有将完整的数据集在同样的神经网络中传递多次,才会得到比较优秀的训练效果,当然也不行,容易过拟合,所以要根据实验选择自己最合适的。

epochs:

epochs被定义为向前和向后传播中所有批次的单次训练迭代。这意味着一个周期是整个数据的单次向前和向后传递。简单说,epochs指的就是训练过程中数据将被“轮”多少次,就这样。

2.batch

Keras中参数更新是按批进行的,就是小批的梯度下降算法。如果准备跑模型的数据量太大,此时自己的电脑可能承受不住,所以可以适当的将数据分成几块,就是分成几个batch。每次的参数更新有两种方式:

第一种,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种方法每更新一次参数都要把数据集里的所有样本都看一遍,计算量开销大,计算速度慢,不支持在线学习,这称为批梯度下降。

另一种,每看一次数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降,这个方法速度比较快,但是瘦脸性能不太好,可能在最优点附近晃来晃去,找不到最优点。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。

3.batch size

一个batch中的数据量大小即为batch size,一般为2n,比如32,64,128等等。

4.iterations

iterations(迭代):每一次迭代都是一次权重更新,每一次权重更新需要batch_size个数据进行Forward运算得到损失函数,在BP算法更新参数。1个iteration等于使用batchsize个样本训练一次。

迭代,即batch size需要完成一次epoch的次数

(ps:其实对于一个epoch来说,batch和iterations数值上是相等的)


以下为上述知识的两个问题:

问题一:比如现在我们有一个2000大小的训练样本,然后我们将这2000个样本分成4个大小为500的小数据集样本,此时epoch=1(暂且就用这个样本训练1次)。

请问以下数值分别为多少:①batch;②batch size;③iterations;

问题二:Fashion Mnist数据集有70000个灰度图像,其中60000张图片作为训练数据,10000张图片作为测试数据。假设现在选择Batch Size=100对模型进行训练。迭代30000次。

每个Epoch要训练的图片数量:60000(训练集上的所有图像)

请问:①训练集具有的Batch个数;②每个Epoch需要完成的Batch个数;③每个Epoch具有的Iteration个数;④每个Epoch中发生模型权重更新的次数;⑤训练10个Epoch后,模型权重更新的次数;

答案公布于评论区。

总结:

1)不同Epoch的训练,其实用的是同一个训练集的数据。

2)第1个Epoch和第10个Epoch虽然用的都是训练集的60000张图片,但是对模型的权重更新值确是完全不同的。

3)因为不同Epoch的模型处于代价函数空间上的不同位置,模型的训练迭代越靠后,越接近低谷,其代价越小。

4)总共完成30000次迭代,相当于完成了30000/600=50个Epoch。

相关文章
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】30. 神经网络中批量归一化层(batch normalization)的作用及其Pytorch实现
【从零开始学习深度学习】30. 神经网络中批量归一化层(batch normalization)的作用及其Pytorch实现
|
机器学习/深度学习 资源调度 监控
深度学习基础入门篇[六]:模型调优,学习率设置(Warm Up、loss自适应衰减等),batch size调优技巧,基于方差放缩初始化方法。
深度学习基础入门篇[六]:模型调优,学习率设置(Warm Up、loss自适应衰减等),batch size调优技巧,基于方差放缩初始化方法。
|
机器学习/深度学习 人工智能 资源调度
深度学习入门基础CNN系列——批归一化(Batch Normalization)和丢弃法(dropout)
批归一化方法(Batch Normalization,BatchNorm)是由Ioffe和Szegedy于2015年提出的,已被广泛应用在深度学习中,其目的是对神经网络中间层的输出进行标准化处理,使得中间层的输出更加稳定。丢弃法(Dropout)是深度学习中一种常用的抑制过拟合的方法,其做法是在神经网络学习过程中,随机删除一部分神经元。训练时,随机选出一部分神经元,将其输出设置为0,这些神经元将不对外传递信号。
538 0
深度学习入门基础CNN系列——批归一化(Batch Normalization)和丢弃法(dropout)
|
机器学习/深度学习 自然语言处理 资源调度
【深度学习】batch normalization和layer normalization区别
“独立同分布”的数据能让人很快地发觉数据之间的关系,因为不会出现像过拟合等问题。 一般在模型训练之前,需要对数据做归一化。为了解决ICS问题,即internal covarivate shift(内部协变量漂移)问题,即数据分布会发生变化,对下一层网络的学习带来困难。
748 0
【深度学习】batch normalization和layer normalization区别
|
机器学习/深度学习 算法
深度学习中的三种梯度下降方式:批量(batch),随机(stochastic),小批量(mini-batch)
深度学习中的三种梯度下降方式:批量(batch),随机(stochastic),小批量(mini-batch)
543 0
|
机器学习/深度学习 算法
深度学习之优化详解:batch normalization
一项优化神经网络的技术,点进来了解一下?
2993 0
|
机器学习/深度学习 算法 算法框架/工具
吴恩达《深度学习》第二门课(3)超参数调试、Batch正则化和程序框架
3.1调试处理 (1)不同超参数调试的优先级是不一样的,如下图中的一些超参数,首先最重要的应该是学习率α(红色圈出),然后是Momentum算法的β、隐藏层单元数、mini-batch size(黄色圈出)、再之后是Layer、learning rate decay(紫色圈出)、最后是Adam算法中的β1、β2、ε。
1500 0
|
机器学习/深度学习 算法 计算机视觉
如何理解深度学习分布式训练中的large batch size与learning rate的关系?
在深度学习进行分布式训练时,常常采用同步数据并行的方式,也就是采用大的batch size进行训练,但large batch一般较于小的baseline的batch size性能更差,请问如何理解调试learning rate能使large batch达到small batch同样的收敛精度和速度?
2659 0
|
9天前
|
机器学习/深度学习 数据采集 人工智能
AI赋能教育:深度学习在个性化学习系统中的应用
【10月更文挑战第26天】随着人工智能的发展,深度学习技术正逐步应用于教育领域,特别是个性化学习系统中。通过分析学生的学习数据,深度学习模型能够精准预测学生的学习表现,并为其推荐合适的学习资源和规划学习路径,从而提供更加高效、有趣和个性化的学习体验。
55 9
|
6天前
|
机器学习/深度学习 人工智能 监控
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术在图像识别领域的应用,并分析了当前面临的主要挑战。随着卷积神经网络(CNN)的发展,图像识别的准确性和效率得到了显著提升。然而,数据不平衡、模型泛化能力、计算资源消耗等问题仍然是制约深度学习在图像识别领域进一步发展的关键因素。本文将详细介绍深度学习在图像识别中的应用案例,并讨论解决现有挑战的可能策略。

热门文章

最新文章