假设我现在有一个大小为10000张图片的数据集
epoch:
如果我现在进行训练,我要训练8个epoch,也就是说从训练开始到训练结束,我一共要跑80000张图片的数据。换句话说,1个epoch就是你整个数据集的量。
batch_size:
现在,我开始训练数据,但是大家都知道,即使我电脑配置好到爆炸,我也很难把所有的数据一次性喂进去,所以我要把这10000个数据分成很多块,这就是batch_size,假设我现在 batch_size = 20,也就是说我每次往我的电脑里面输入20个数据。这同样就是一次迭代(iteration)。
iteration:
当你20个数据喂进去之后,你的损失函数根据你输入网络的数据(x)最后得到的预测结果(y’ = f(x))与真实结果(y)的差值和前向传播算法来不断惩罚你的权重,使得权重可以不断地调整。
而每次输入一个batch_size,相应的损失函数就发挥一次效应,同样地,权重就会被更新一次,所以每次输入和处理完一个batch_size这个过程叫做一次迭代(iteration)