epoch
,是指在训练过程中,完整的数据集通过神经网络一次就是一个epoch
。一个epoch
,权重更新一次,因此仅仅使用一个epoch
是不够的,那么epoch
设成多少是合适的呢?这个其实没有定论,对于不同的数据,答案是不一样的。
batch-size
,是指每次训练在训练集中取的样本数量,它影响到模型的优化程度和速度。硬件性能越好,batch-size
可以设的越高,最常见的错误就是CUDA: out of memory
,前提是使用gpu
训练。
iteration
,指训练需要的总迭代次数,等于数据集总数除以batch-size
的值
最后举个例子:
比如说有 20000 个数据,计划进行 30 轮训练,那么 epoch
= 30,一次训练使用100个数据,那么 batch-size
= 100,训练一轮总共要迭代 200 次(即 20000 / 100 = 200),总的iteration
= 200 * 30 = 6000次。