深度学习中的 epochs、batch_size、iterations 详解

栏目: 数据库 · 发布时间: 6年前

内容简介:深度学习中涉及到很多参数,如果对于一些参数不了解,那么去看任何一个框架都会有难度,在TensorFlow中有一些模型训练的基本参数,这些参数是训练模型的前提,也在一定程度上影响着模型的最终效果。下面主要介绍几个参数。深度学习的优化算法,其实就是梯度下降,在之前的文章中我们也介绍过梯度下降,这里就不详细说明。梯度下降分为三种:

深度学习中的 epochs、batch_size、iterations 详解

深度学习中涉及到很多参数,如果对于一些参数不了解,那么去看任何一个框架都会有难度,在TensorFlow中有一些模型训练的基本参数,这些参数是训练模型的前提,也在一定程度上影响着模型的最终效果。下面主要介绍几个参数。

  • batch_size

  • iterations

  • epochs

batch_size

深度学习的优化算法,其实就是梯度下降,在之前的文章中我们也介绍过梯度下降,这里就不详细说明。梯度下降分为三种:

  • 批量梯度下降算法(BGD,Batch gradient descent algorithm)

  • 随机梯度下降算法(SGD,Stochastic gradient descent algorithm)

  • 小批量梯度下降算法(MBGD,Mini-batch gradient descent algorithm)

批量梯度下降算法,每一次计算都需要遍历全部数据集,更新梯度,计算开销大,花费时间长,不支持在线学习。

随机梯度下降算法,每次随机选取一条数据,求梯度更新参数,这种方法计算速度快,但是收敛性能不太好,可能在最优点附近晃来晃去,hit不到最优点。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。

为了克服两种方法的缺点,现在一般采用的是一种折中手段,mini-batch gradient decent,小批的梯度下降,这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,计算量也不是很大。

tf框架中的batch size指的就是更新梯度中使用的样本数。当然这里如果把batch size设置为数据集的长度,就成了批量梯度下降算法,batch_size设置为1就是随机梯度下降算法。

iterations

迭代次数,每次迭代更新一次网络结构的参数。

迭代是重复反馈的动作,神经网络中我们希望通过迭代进行多次的训练以到达所需的目标或结果。

每一次迭代得到的结果都会被作为下一次迭代的初始值。

一个迭代 = 一个(batch size)数据正向通过(forward)+ 一个(batch size)数据反向(backward)

深度学习中的 epochs、batch_size、iterations 详解

前向传播:构建由(x1,x2,x3)得到Y(hwb(x))的表达式

反向传播:基于给定的损失函数,求解参数的过程

epochs

epochs被定义为前向和反向传播中所有批次的单次训练迭代。这意味着1个周期是整个输入数据的单次前向和反向传递。

简单说,epochs指的就是训练过程中数据将被“轮”多少次

例如在某次模型训练过程中,总的样本数是10000,batch_size=100,epochs=10,其对应的伪代码如下:

其中iterations = data length / batch size

相关文章

深度学习中的 epochs、batch_size、iterations 详解

扫码关注

By:Thinkgamer

推荐系统 / 深度学习 / 大数据


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言程序设计

C语言程序设计

K. N. King / 吕秀锋、黄倩 / 人民邮电出版社 / 2010-4 / 79.00元

时至今日, C语言仍然是计算机领域的通用语言之一,但今天的 C语言已经和最初的时候大不相同了。本书最主要的一个目的就是通过一种“现代方法”来介绍 C语言,书中强调标准 C,强调软件工程,不再强调“手工优化”。这一版中紧密结合了 C99标准,并与 C89标准进行对照,补充了 C99中的最新特性。本书分为 C语言的基础特性、 C语言的高级特性、 C语言标准库和参考资料 4个部分。每章末尾都有一个“问与......一起来看看 《C语言程序设计》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具