solver.prototxt参数说明(三)

转载 2016年05月31日 21:24:59

http://www.mamicode.com/info-detail-1368127.html


solver.prototxt

net: "models/bvlc_alexnet/train_val.prototxt" 
test_iter: 1000       # 
test_interval: 1000   # 
base_lr: 0.01         # 开始的学习率
lr_policy: "step"     # 学习率的drop是以gamma在每一次迭代中
gamma: 0.1
stepsize: 100000      # 每stepsize的迭代降低学习率:乘以gamma
display: 20           # 没display次打印显示loss
max_iter: 450000      # train 最大迭代max_iter 
momentum: 0.9         #
weight_decay: 0.0005  #
snapshot: 10000       # 没迭代snapshot次,保存一次快照
snapshot_prefix:   "models/bvlc_reference_caffenet/caffenet_train"
solver_mode: GPU      # 使用的模式是GPU 
  • test_iter 
    在测试的时候,需要迭代的次数,即test_iter* batchsize(测试集的)=测试集的大小,测试集的 batchsize可以在prototx文件里设置。

  • test_interval 
    训练的时候,每迭代test_interval次就进行一次测试。

  • momentum 
    灵感来自于牛顿第一定律,基本思路是为寻优加入了“惯性”的影响,这样一来,当误差曲面中存在平坦区的时候,SGD可以更快的速度学习。 

    wim?wi?η?E?wi

train_val.prototxt

layer { # 数据层
    name: "data"
    type: "Data"
    top: "data"
    top: "label"
    include {
        phase: TRAIN # 表明这是在训练阶段才包括进去
    }
    transform_param { # 对数据进行预处理
        mirror: true # 是否做镜像
        crop_size: 227
        # 减去均值文件
        mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
    }
    data_param { # 设定数据的来源
        source: "examples/imagenet/ilsvrc12_train_lmdb"
        batch_size: 256
        backend: LMDB
    }
}
layer {
    name: "data"
    type: "Data"
    top: "data"
    top: "label"
    include {
        phase: TEST # 测试阶段
    }
    transform_param {
        mirror: false # 是否做镜像
        crop_size: 227
        # 减去均值文件
        mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
    }
    data_param {
        source: "examples/imagenet/ilsvrc12_val_lmdb"
        batch_size: 50
        backend: LMDB
    }
}
  • lr_mult 
    学习率,但是最终的学习率需要乘以 solver.prototxt 配置文件中的 base_lr .

    如果有两个 lr_mult, 则第一个表示 weight 的学习率,第二个表示 bias 的学习率 
    一般 bias 的学习率是 weight 学习率的2倍’

  • decay_mult 
    权值衰减,为了避免模型的over-fitting,需要对cost function加入规范项。 

    wiwi?η?E?wi?ηλwi

  • num_output 
    卷积核(filter)的个数

  • kernel_size 
    卷积核的大小。

    如果卷积核的长和宽不等,需要用 kernel_h 和 kernel_w 分别设定

  • stride 
    卷积核的步长,默认为1。也可以用stride_h和stride_w来设置。

  • pad 
    扩充边缘,默认为0,不扩充。

    扩充的时候是左右、上下对称的,比如卷积核的大小为5*5,那么pad设置为2,则四个边缘都扩充2个像素,即宽度和高度都扩充了4个像素,这样卷积运算之后的特征图就不会变小。 
    也可以通过pad_h和pad_w来分别设定。

  • weight_filler 
    权值初始化。 默认为“constant”,值全为0. 
    很多时候我们用”xavier”算法来进行初始化,也可以设置为”gaussian”

weight_filler {
    type: "gaussian"
    std: 0.01
}
  • bias_filler

偏置项的初始化。一般设置为”constant”, 值全为0。

bias_filler {
    type: "constant"
    value: 0
}
  • bias_term

    是否开启偏置项,默认为true, 开启

  • group 
    分组,默认为1组。如果大于1,我们限制卷积的连接操作在一个子集内。 
    卷积分组可以减少网络的参数,至于是否还有其他的作用就不清楚了。

    每个input是需要和每一个kernel都进行连接的,但是由于分组的原因其只是与部分的kernel进行连接的 
    如: 我们根据图像的通道来分组,那么第i个输出分组只能与第i个输入分组进行连接。

  • pool 
    池化方法,默认为MAX。目前可用的方法有 MAX, AVE, 或 STOCHASTIC

  • dropout_ratio 
    丢弃数据的概率


浅谈caffe中train_val.prototxt和deploy.prototxt文件的区别

本文以CaffeNet为例: 在刚开始学习的时候,觉得train_val.prototxt文件和deploy.prototxt文件很相似,然后当时想尝试利用deploy.prototxt还原出trai...
  • fx409494616
  • fx409494616
  • 2016-11-02 16:10:33
  • 19774

Caffe学习笔记(四):使用pycaffe生成train.prototxt、test.prototxt文件

了解到上一篇笔记的内容,就可以尝试自己编写python程序生成prototxt文件了,当然也可以直接创建文件进行编写,不过显然,使用python生成这个配置文件更为简洁。之前已说过cifar10是使用...
  • c406495762
  • c406495762
  • 2017-04-20 23:17:47
  • 8529

深度学习caffe平台--train_val.prototxt文件中数据层及参数详解

转载自己:http://www.cnblogs.com/denny402/p/5070928.html 要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一...
  • liuweizj12
  • liuweizj12
  • 2016-08-08 16:12:28
  • 8757

关于train_val.prototxt中参数详解

solver.prototxt里面的参数详解比较容易理解,都是外部控制的参数;对于训练文件里面的参数个人觉得写的比较详细的常用的参数可以参考如下链接: train_val.prototxt文件中数...
  • liuxin000619
  • liuxin000619
  • 2016-08-30 10:27:19
  • 1860

*_train_test.prototxt,*_deploy.prototxt,*_slover.prototxt文件编写时注意事项

本文只是自己学习一天的总结,如有不对的地方,欢迎指正! 欢迎大家转载,但请标明出处,谢谢! 1、*_train_test.prototxt文件 这是训练与测试网络配置文件 (1)在数据层中 参数inc...
  • Sunshine_in_Moon
  • Sunshine_in_Moon
  • 2015-10-28 18:41:26
  • 7138

【神经网络与深度学习】Caffe部署中的几个train-test-solver-prototxt-deploy等说明<二>

一,train_val.prototxt name: "CIFAR10_quick" layer { name: "cifar" type: "Data" top: "data"...
  • LG1259156776
  • LG1259156776
  • 2016-09-15 20:39:52
  • 4094

caffe prototxt参数详解

solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一般为 # caffe train --solver=*_slove...
  • redmoon729
  • redmoon729
  • 2017-04-18 11:41:05
  • 347

solver.prototxt参数解析

solver.prototxt的一般结构先看一个实例: train_net:"models/VGGNet/VOC0712/SSD_300x300/train.prototxt" test_net:"...
  • xygl2009
  • xygl2009
  • 2017-08-22 19:38:16
  • 1074

solver.prototxt参数说明(二)

http://www.cnblogs.com/denny402/p/5074049.html solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是s...
  • u012746763
  • u012746763
  • 2016-05-31 21:14:35
  • 6976

Alexnet中deploy.prototxt与train_val.prototxt的对比

一般模型中会包含如下几个文件: 其中,train_val.prototxt 文件是网络配置文件。该文件是在训练的时候用的。deploy.prototxt文件是在测试时使用的文件。solver.p...
  • xiaoyang19910623
  • xiaoyang19910623
  • 2016-12-30 10:20:28
  • 688
收藏助手
不良信息举报
您举报文章:solver.prototxt参数说明(三)
举报原因:
原因补充:

(最多只允许输入30个字)