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 
    丢弃数据的概率


深度学习Imagenet caffe AlexNet 实验步骤

1       论文: ImageNet Classification with Deep Convolutional NeuralNetworks 2       环境需求 Linux操作系统(如u...
  • Drdeep
  • Drdeep
  • 2016年03月09日 15:47
  • 25060

薛开宇学习笔记二之总结笔记--caffe 中solver.prototxt;train_val.prototxt的一些参数介绍

原文地址:http://blog.csdn.net/cyh_24/article/details/51537709 solver.prototxt net: "models/bvlc_alex...

[caffe]深度学习之图像分类模型AlexNet解读

在imagenet上的图像分类challenge上Alex提出的alexnet网络结构模型赢得了2012届的冠军。要研究CNN类型DL网络模型在图像分类上的应用,就逃不开研究alexnet,这是CNN...

caffe 实战系列:proto文件格式以及含义解析:如何定义网络,如何设置网络参数(以AlexNet为例)

(0)前言: 初学者往往不知道如何配置网络,或者面对这些参数却无从下手不知道是什么含义,下面我根据分析源码的经验给出AlexNet的具体解释,希望能够给初学者一些定义网络上面的帮助此外还能够知道如何...

caffe深度学习网络(.prototxt)可视化工具

caffe深度学习网络(.prototxt)在线可视化工具:Netscope Editor 网址:http://ethereon.github.io/netscope/#/editor   ...

caffe在prototxt文件加参数

prototxt文件加参数实现:solver.prototxt加参和train_test.prototxt加参。 ===========================================...

protobuf、prototxt的使用/Windows/VS

下载源码,编译出protoc.exe文件和libprotobuf.lib库文件 使用方法: protoc.exe 用来根据 proto文件 生成对应的 头文件 和 信息源文件     用法: ...

caffe中solver.prototxt参数说明

http://www.cnblogs.com/denny402/p/5074049.html solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是so...

caffe中关于train_val.prototxt和solver.prototxt设置的一些心得

train_val.prototxt首先要修改的就是mean_file和data_param里面source的路径; data层中有两个transform_param,如下图。只需要用到其中一个,当选...
  • KGzhang
  • KGzhang
  • 2017年05月23日 10:36
  • 807

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

转载自己:http://www.cnblogs.com/denny402/p/5070928.html 要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:solver.prototxt参数说明(三)
举报原因:
原因补充:

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