一、简单总结:
总样本数 = bach_numbers * bach_size
iteration_numbers = bach_numbers
1个epoch = 完成所有的iteration_numbers/bach_numbers
二、详细说明:
(1)batch_size:每个bach的大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
(2)iteration:1个iteration等于使用batch_size个样本训练一次,即使用一个bach的数据训练一次;
(3)epoch:1个epoch等于使用训练集中的全部样本训练一次。
iteration:每跑完一个batch都要更新参数,这个过程叫一个iteration。迭代是重复反馈的动作,每一次迭代得到的结果都会被作为下一次迭代的初始值。1次迭代(也叫training step)表示[batch size]个训练数据forward+backward后更新参数过程。
epoch:所有的batch随机投到模型,迭代训练,训练完成之后,算作第1轮(epoch)训练完成。还需再次随机打散数据,重新分配bach,再做第2轮(epoch)训练。1个epoch表示所有训练数据forward+backward后更新参数的过程。
🌰:
假设有100000条数据,分成了200个bach,此时bach_size就是500:
100000(总样本数) = 200(bach_numbers) * 500(bach_size)
iteration_numbers=bach_numbers=200
1个epoch需要迭代的次数为iteration_numbers=200次