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

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

net: "examples/mnist/lenet_train_test.prototxt"
test_iter: 100
test_interval: 500
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
lr_policy: "inv"
gamma: 0.0001
power: 0.75
display: 100
max_iter: 10000
snapshot: 5000
snapshot_prefix: "examples/mnist/lenet"
solver_mode: CPU

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

net: "examples/mnist/lenet_train_test.prototxt"

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

test_iter: 100

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

test_interval: 500

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

base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005

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

lr_policy: "inv"

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

gamma: 0.0001
power: 0.75

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

display: 100

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

max_iter: 10000

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

snapshot: 5000
snapshot_prefix: "examples/mnist/lenet"

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

solver_mode: CPU

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

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

发布了97 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/bhniunan/article/details/104392474