码迷,mamicode.com
首页 > 其他好文 > 详细

epoch,iteration,batch,batch_size

时间:2017-06-19 23:30:33      阅读:476      评论:0      收藏:0      [点我收藏+]

标签:重复   网络   orm   iter   prot   测试的   style   images   参数   

epoch:训练时,所有训练图像通过网络训练一次?(次前向传播+次后向传播);测试时,所有测试图像通过网络一次?(一次前向传播)。Caffe不用这个参数。

batch_size:1个batch包含的图像数目,通常设为2的n次幂,常用的包括64,128,256。                        网络较小时选用256,较大时选用64。

iteration?:训练时,1个batch训练图像通过网络训练一次?(一次前向传播+一次后向传播),每迭代一次权重更新一次;测试时,1个batch测试图像通过网络一次?(一次前向传播)。

三者之间的关系:iterations = epochs×(images / batch_size)?,所以1个epoch包含的                              iteration次数=样本数量/batch_size;

以Caffe的mnist?为例(具体参数见相应的prototxt文件):

training_images=60k,batch_size=64, maximum_iterations= 10k?,test _images=10k,batch_size=100, test_iterations=100:

在这个参数设置下,训练时经历了10.6个epoch,测试时100次iteration(1个epoch)恰好可以遍历整个测试集。

注意:?上面例子中如果训练时maximum_iterations= 10k,那么将会有10k×64=640k幅图像参与训练,乍一看这个是错的,因为640k远远大于训练集60k。事实上这是没问题的,当剩余的训练样本不够一个batch时,Caffe会带着这些剩余的样本然后重头开始再取一个batch。所以在设置Training和Testing的参数时需要注意,训练的某些参数可以不整除(比如10.6个epoch),但测试时设置的参数最好要能整除(测试网络时正好遍历完所有测试样本是最理想的情况)。

测试的时候,test_batch_size×test_iterations?>number of test images也不会出错,甚至这样做也可以(这种情况下已经测试过的图像会组成新的batch重复测试),不过设置参数时最好还是test_batch_size×test_iterations?=number of test images。

 

在caffe中很多预训练好的模型的iteration都是40000,fast_rcnn那个代码也是40000

epoch,iteration,batch,batch_size

标签:重复   网络   orm   iter   prot   测试的   style   images   参数   

原文地址:http://www.cnblogs.com/ymjyqsx/p/7051032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!