1.epoch
训练时,所有训练数据集通过网络训练一次(一次前向传播+一次后向传播);测试时,所有测试数据集通过网络一次(一次前向传播)。
2.batch
batch_size,在训练集中选择一组样本用来更新权值。1个batch包含的样本的数目,通常设为2的n次幂,常用的包括64,128,256。 网络较小时选用256,较大时选用64。
full batch,batch_size = images_size
mini batch,batch_size = 一个子集
Online Learning,batch_size = 1
3.iterations
训练时,1个batch训练图像通过网络训练一次(一次前向传播+一次后向传播),每迭代一次权重更新一次;测试时,1个batch测试图像通过网络一次(一次前向传播)。所谓iterations就是完成一次epoch所需的batch个数。
4.三者之间的关系:
max_iterations = epochs × (images_size / batch_size)
one epoch = iterations per epoch = images_size / batch_size
1.有2000个数据,分成4个batch,那么batch size就是500。运行所有的数据进行训练,完成1个epoch,需要进行4次iterations。
2.training_images=60k, batch_size=64, max_iterations= 10k, test_images=10k, batch_size=100, test_iterations=100
训练时经历了10.6个epoch,测试时100次iteration(1个epoch)恰好可以遍历整个测试集。