之前在学习深度学习的过程中一直对epoch、batch_size、iterations这三者之间的关系搞不懂,现在跑过一些实验之后对这三者之间的关系有了个更深层次的理解。

epoch:是指将所有训练样本训练一遍的次数(它的取值取决于你自己)

batch_size:是指每一次迭代过程中训练样本的的大小

iterations:是指在每一个epoch下需要迭代的次数

对于batch_size以及iterations可能说的抽象点,我们举个例子来更形象解释下。

比如我们有一个数据集CIFAR 10 他是有60000条数据集(训练集50000、测试集10000)

我们使用其中的训练集50000条来进行训练,假设epoch=30,batch_size=100,那么iterations=500(50000 / 100 = 500)

那么我们在跑实验的时候就会经常出现下面这种显示:

epoch:1/30 

   =======>1/500

   =======>2/500

   =======>3/500

    ...

  =======>500/500

这里面的500就是iterations,因为训练集是50000所以分子也就需要到500 * batch_size才能训练完一遍。

以上就是我个人对这三者的理解,网上也有很多说法,我按照我最容易理解的方式记录下,如果有错请在评论区指正。