之前在学习深度学习的过程中一直对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才能训练完一遍。
以上就是我个人对这三者的理解,网上也有很多说法,我按照我最容易理解的方式记录下,如果有错请在评论区指正。