前言
作为本际云服务器推荐网的小编小本本,今天要给大家介绍Caffe神经网络solver及其配备详细说明。solver是caffe的最核心的关键,它融洽着全部建模运行。在本文中,我们将重点详细介绍solver环境变量的撰写,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪。

Solver的步骤
在DeepLearning中,通常lossfunction是非凸的,并没有解析解,我们应该依据优化策略来求得。solver的关键作用是更替启用非前(forward)优化计算方法和时向(backward)优化计算方法来刷新主要参数,进而降到最低loss,实际上是一类提升的优化计算方法。
至目前版本,caffe带来了6种优化计算方法来求得最佳主要参数,在solver环境变量中,可设置type类型来挑选。具体每一种方式的讲解,请看下篇文章。
Solver在每次的循环迭代中,进行了以下两步工作:
- 调用forward算法进行计算最后的导出值,及其相匹配的loss。
- 调用backward算法进行计算各层的梯度方向。
- 依据采用的slover方法,运用梯度方向开展主要参数刷新。
- 统计并储存每一次提升的学习率、快照更新,及其相对应的情况。
案例详解
下面以一个案例来详细解释solver环境变量的设置:
net:"examples/mnist/lenet_train_test.prototxt"
test_iter:100
test_interval:500
base_lr:0.01
momentum:0.9
type:SGD
weight_decay:0.0005
lr_policy:"inv"
gamma:0.0001
power:0.75
display:100
max_iter:20000
snapshot:5000
snapshot_prefix:"examples/mnist/lenet"
solver_mode:CPU
net
这一行设置深度网络模型。每一个模型就是一个net,需要在一个专门的配置文件中对net进行配置,每个net由许多的layer所组成。每一个layer的具体配置方式可参考文中其它章节。注意的是:文件的路径要从caffe的根目录开始,其它的所有配置都是这样。
test_iter
这个要与testlayer中的batch_size结合起来理解。mnist数据中测试样本总数为10000,一次性执行全部数据效率很低,因此我们将测试数据分成几个批次来执行,每个批次的数量就是batch_size。假设我们设置batch_size为100,则需要迭代100次才能将10000个数据全部执行完。因此test_iter设置为100。执行完一次全部数据,称之为一个epoch。
test_interval
测试间隔。也就是每训练500次,才进行一次测试。
base_lr、lr_policy、gamma和power
这四行可以放在一起理解,用于学习率的设置。只要是梯度下降法来求解优化,都会有一个学习率,也叫步长。base_lr用于设置基础学习率,在迭代的过程中,可以对基础学习率进行调整。lr_policy可以设置不同的策略,根据策略对学习率进行调整。具体可参考本文中的表格。gamma和power则是策略所需要的参数。例如lr_policy设置为"inv"(多项式误差),gamma为0.0001,power为0.75,则学习率的计算公式为base_lr*(1+gamma*iter)^(-power)。
momentum
上一次梯度更新的权重,具体可参看其它文献。
type
优化算法选择。总共有六种方法可选择,在本文的开头已介绍。
weight_decay
权重衰减项,防止过拟合的一个参数。
display
每训练100次,在屏幕上显示一次。如果设置为0,则不显示。
max_iter
最大迭代次数。这个数设置太小,会导致没有收敛,精确度很低。设置太大,会导致震荡,浪费时间。
snapshot和snapshot_prefix
快照。将训练出来的model和solver状态进行保存,snapshot用于设置训练多少次后进行保存,默认为0,不保存。snapshot_prefix设置保存路径。还可以设置snapshot_diff,是否保存梯度值,默认为false,不保存。也可以设置snapshot_format,保存的类型。有两种选择:HDF5和BINARYPROTO,默认为BINARYPROTO。
solver_mode
设置运行模式。默认为GPU,如果你没有GPU,则需要改成CPU,否则会出错。
注意:以上的所有参数都是可选参数,都有默认值。根据solver方法(type)的不同,还有一些其它的参数,在此不一一列举。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6863.html
