深度学习caffe–手写字体识别例程(八)—— 求解器描述文件lenet_solver.prototxt详解

释放双眼,带上耳机,听听看~!

        在上面的两篇文章中,我们讲述了lenet-5网络模型,有了模型,我们还需要有求解器,才能够对模型进行训练和测试,求解器描述文件是对求解器参数进行描述的文件,文件名为lenet_solver.prototxt,它位于caffe根目录的examples/mnist/路径下。这个文件比较简单,如下所示。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1net: "examples/mnist/lenet_train_test.prototxt"
2test_iter: 100
3test_interval: 500
4base_lr: 0.01
5momentum: 0.9
6weight_decay: 0.0005
7lr_policy: "inv"
8gamma: 0.0001
9power: 0.75
10display: 100
11max_iter: 10000
12snapshot: 5000
13snapshot_prefix: "examples/mnist/lenet"
14solver_mode: CPU
15

        下面我们逐条对这个文件进行详解。


1
2
1net: "examples/mnist/lenet_train_test.prototxt"
2

这一行表示求解过程使用的网络模型的描述文件为examples/mnist/路径下的lenet_train_test.prototxt


1
2
1test_iter: 100
2

这一行定义的test_iter表示测试的迭代次数,定义为100次,经过前几篇文章的介绍,我们知道,测试集的样本数为10000,而lenet网络模型中的定义,测试阶段一次迭代的样本数为100,测试阶段进行100次迭代,则正好覆盖到整个测试集样本。


1
2
1test_interval: 500
2

这行定义的是测试间隔,取值500表明每进行500次训练迭代时,进行一次测试阶段进行预测。


1
2
3
4
1base_lr: 0.01
2momentum: 0.9
3weight_decay: 0.0005
4

这3行对三个参数进行赋值,base_lr为学习速率,momentum为遗忘因子,weight_decay为权值衰减常数。


1
2
3
1lr_policy: "inv"
2
3

这一行表示学习速率衰减策略采用inv(倒数衰减策略)。它的计算公式为 base_lr * (1 + gamma * iter) ^ (- power)


1
2
3
1gamma: 0.0001
2power: 0.75
3

这两行定义的是inv策略用使用的参数,在inv策略公式中,iter为当前迭代次数。


1
2
1display: 100
2

这一行表示,每个100次迭代,在终端中打印日志。


1
2
1max_iter: 10000
2

这一行表示,最大迭代次数为10000次。


1
2
3
1snapshot: 5000
2snapshot_prefix: "examples/mnist/lenet"
3

这两行是对快照的定义,每隔5000次迭代打印一次快照,并且快照的的文件名前缀为examples/mnist/lenet


1
2
1solver_mode: CPU
2

这一行的作用是设置求解器模式为CPU模式,如果需要GPU则设置为GPU模式。

        初学者可能对上面的解释有些还看不懂,这需要长时间的知识积累,后面的文章中,我们会对caffe的重要源码进行解读,经过解读之后,相信大家对这个描述文件会有更深刻的了解。

给TA打赏
共{{data.count}}人
人已打赏
安全运维

MySQL到MongoDB的数据同步方法!

2021-12-11 11:36:11

安全运维

Ubuntu上NFS的安装配置

2021-12-19 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索