1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

Caffe神经网络solver及其配备详细说明

前言

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

Caffe神经网络solver及其配备详细说明

Solver的步骤

在DeepLearning中,通常lossfunction是非凸的,并没有解析解,我们应该依据优化策略来求得。solver的关键作用是更替启用非前(forward)优化计算方法和时向(backward)优化计算方法来刷新主要参数,进而降到最低loss,实际上是一类提升的优化计算方法。

至目前版本,caffe带来了6种优化计算方法来求得最佳主要参数,在solver环境变量中,可设置type类型来挑选。具体每一种方式的讲解,请看下篇文章。

Solver在每次的循环迭代中,进行了以下两步工作:

  1. 调用forward算法进行计算最后的导出值,及其相匹配的loss。
  2. 调用backward算法进行计算各层的梯度方向。
  3. 依据采用的slover方法,运用梯度方向开展主要参数刷新。
  4. 统计并储存每一次提升的学习率、快照更新,及其相对应的情况。

案例详解

下面以一个案例来详细解释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