您的位置:首页 > Web前端

caffe测试已经训练好的模型的迭代次数修改

2016-11-23 17:50 435 查看
今天调用训练好的模型进行测试,发现测试的Batch都只有50,并且似乎找不到在prototxt里面修改,所以怀疑是默认值,如果你要测试大量的数据,一方面是在输入的测试模型prototxt中的TEST中修改batch_size,这样比如原来的batch_size是20,那么测试50个Batch就是测试了1000张images.但是我有20000张images可以测试.所以要到caffe源码里面修改这个默认值.

  那这个默认值在哪呢?在caffe/tools/caffe.cpp中的DEFINE_int32(iterations, 50, "The number of iterations to run."); 只要把50改成你想要的值,然后到caffe目录下,make clean, make all -j4.编译完成后,重新测试,就发现Batch number随你所欲了.

在这里重新recall一下训练时solver中的test_iter和batch_size等的关系.# test_iter specifies how many forward passes the test should carry out.就是做一次test的时候有多少张image参与计算,当这个值很小的时候test很快,很大的时候需要花很长的时间test,为什么呢?caffe在训练过程中的test是将你的batch_size乘以这个test_iter得到每次测试的item number,so,如果你的显存很小,你可以在train.prototxt里面将test的batch_size变小,但是test_iter变大,这样也是可以的.这两个的乘积就是做一次test所用的数据量,如果你有10000张images做test,test的batch_size为10,那么可以设置test_iter为1000,这样每次test就是用这10000张images做一个forward.那么每次test都是平等地用这10000张images.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: