转载自http://blog.csdn.net/iamzhangzhuping/article/details/49993899
先上一张图,大家很熟悉的一张图。
首先说明一个概念:在caffe中的一次迭代iteration指的是一个batch,而不是一张图片。
下面主要说下2个概念:
test_iter:在测试的时候,需要迭代的次数,即test_iter* batchsize(测试集的)=测试集的大小,测试集batchsize可以在prototx文件里设置。
test_interval:interval是区间的意思,该参数表示训练的时候,每迭代500次就进行一次测试。
caffe在训练的过程是边训练边测试的。训练过程中每500次迭代(也就是32000个训练样本参与了计算,batchsize为64),计算一次测试误差。计算一次测试误差就需要包含所有的测试图片(这里为10000),这样可以认为在一个epoch里,训练集中的所有样本都遍历以一遍,但测试集的所有样本至少要遍历一次,至于具体要多少次,也许不是整数次,这就要看代码,大致了解下这个过程就可以了。
也可以参考:《神经网络训练中,傻傻分不清Epoch、Batch Size和迭代》