网络和参数配置看论文:Convolution Neural Networks for Chinese Handwriting Recognition
lzj_solver.prototxt里面
(1)test_iter:测试样本总数/;
这个要与test layer中的batch_size结合起来理解。mnist数据中测试样本总数为10000,一次性执行全部数据效率很低,因此我们将测试数据分成几个批次来执行,每个批次的数量就是batch_size。假设我们设置batch_size为100,则需要迭代100次才能将10000个数据全部执行完。因此test_iter设置为100。执行完一次全部数据,称之为一个epoch
注意:之前用convert_imageset生成LMDB格式时,参数resize_height和resize_width一定要设置,不然会出现data_transformer.cpp里的错误
错误:Check failed: error == cudaSuccess (2 vs. 0) out of memory
解决办法:GPU查内存命令:nvidia-smi
杀死进程命令:kill -9 PID PID为上面查出的进程号
(2)test_interval
test_interval: 500
测试间隔。也就是每训练500次,才进行一次测试。
mnist是一个手写数字数据库,由Google实验室的Corinna Cortes和纽约大学柯朗研究院的Yann LeCun等人建立,它有60,000个训练样本集和10,000个测试样本集,对应test_interval是500,我们是在此基础上作改动
在300个训练集和测试集中,样本分别有72,000和18,000,对应test_interval是600
在3755个训练集和测试集中,样本分别有901,200和225,300,对应test_interval是6260