caffe的prototxt文件

data_layer

1、Data层

layer {name: "cifar"type: "Data"top: "data"top: "label"include {phase: TRAIN}transform_param {mean_file: "examples/cifar10/mean.binaryproto"}data_param {source: "examples/cifar10/cifar10_train_lmdb"batch_size: 100backend: LMDB}
}

name任取,表示这一层的名字
type:层类型,如果是Data,表示数据来源是LevelDB后者LMDB,根据数据来源的不同,数据层的类型也不同,有些还是从磁盘中存储hdf5或者图片格式。
top和bottom:top为此层输出,bottom为此层输入,在数据层中,至少有一个命名为data的top。如果有第二个top,一般命名为label。这种(data, label)的配对是分类模型所必需的。
include:一般训练和测试的时候,模型的参数有些不一样。所以这个是用来指定该数据层是属于训练阶段或者测试阶段的层。若未指定,则该层既用在训练模型又用在测试模型上。
transform_param:数据的预处理,可以将数据变换到定义的范围内。如设置scale为0.00390625,实际上就是1/255,即将输入数据由0255归一化到01之间。
data_param:根据数据来源的不同,来进行不同的设置。必须设置的参数有source和batch_size,source包含数据库的目录名字,batch_size就是每次处理的数据个数。可选参数有rand_skip和backend,backend是选择采用LevelDB还是LMDB,默认是LevelDB【这个应该是选择数据库引擎】

vision_layer

【Convolution、Pooling】

2、Convolution层

layer {name: "conv1"type: "Convolution"bottom: "data"top: "conv1"param {lr_mult: 1decay_mult: 1}param {lr_mult: 2decay_mult: 0}convolution_param {num_output: 96kernel_size: 11stride: 4pad: 2weight_filler {type: "gaussian"std: 0.01            #标准差:distribution with stdev 0.01(default mean: 0)}bias_filler {type: "constant"value: 0}}
}

lr_mult:学习率的系数,最终的学习率是这个数乘以solver.prototxt配置文件中的base_lr。如有两个lr_mult,则第一个表示权值w的学习率,第二个表示偏置项的学习率。一般偏置项的学习率是权值学习率的两倍。
必须设置的参数有:
num_output:卷积核的个数
kernel_size:卷积核的大小,如果kernel_size长宽不一样,则需要通过kernel_h,kernel_w分别设定。
其他参数:
stride:卷积核的步长,默认为1, 也可以用stride_h, stride_w来设置。
pad
weight_filter:权值初始化。默认为“constant”,值权威0,很多时候我们用“xavier”算法来进行初始化,也可以设置为“gaussian”
bias_filter:偏置项的初始化,一般设置为“constant”,值全为0。
bias_term:是否开启偏置项,默认为true
group:分组,默认为1组。如果大于1,我们限制卷积的连接操作在一个子集里。

pooling层

layer {name: "pool1"type: "Pooling"bottom: "conv1"top: "pool1"pooling_param {pool: MAXkernel_size: 3stride: 2}
}

4、Local Response Normalization层

LRN是对一个局部的输入进行的归一化操作。【貌似现在不怎么用了】

5、im2col层

在caffe中,卷积运算就是先对数据矩阵进行im2col操作,在进行内积运算,这样做,会比原始的卷积操作更快。

common_layer
【InnerProductLayer、SplitLayer、FlattenLayer、ConcatLayer、SilenceLayer、(Elementwise Operations)这个是我们常说的激活函数层Activation Layers、EltwiseLayer、SoftmaxLayer、ArgMaxLayer、MVNLayer】

6、inner_product层(FC)


layers {name: "fc8"type: "InnerProduct"blobs_lr: 1          # learning rate multiplier for the filtersblobs_lr: 2          # learning rate multiplier for the biasesweight_decay: 1      # weight decay multiplier for the filtersweight_decay: 0      # weight decay multiplier for the biasesinner_product_param {num_output: 1000weight_filler {type: "gaussian"std: 0.01}bias_filler {type: "constant"value: 0}}bottom: "fc7"top: "fc8"

7、accuracy

layer {name: "accuracy"type: "Accuracy"bottom: "ip2"bottom: "label"top: "accuracy"include {phase: TEST}
}

accuracy只在test有,因此要设置include为TEST。输出分类(预测)的精确度。
8、reshape

layer {name: "reshape"type: "Reshape"bottom: "input"top: "output"reshape_param {shape {dim: 0  # copy the dimension from belowdim: 2dim: 3dim: -1 # infer it from the other dimensions}}}

有一个可选的参数组shape,用于指定blob数据的各维的值(blob是一个四维的数据nxcxwxh)
"dim:0"表示维度不变,即输入和输出是一样的维度。"dim:-1"表示由系统自动计算维度。数据总量不变,系统根据其他三维来确定这一维。

9、dropout

layer {name: "drop7"type: "Dropout"bottom: "fc7-conv"top: "fc7-conv"dropout_param {dropout_ratio: 0.5   #只需要设置一个dropout_ratio参数即可}
}

Neuron_layer
10、Sigmoid

layer {name: "encode1neuron"bottom: "encode1"top: "encode1neuron"type: "Sigmoid"
}

11、ReLU/Rectified-linear and Leaky-ReLU

layers {
name: "relu1"
type: RELU
bottom: "conv1"
top: "conv1"
}

loss_layer
【待续,还有很多的】

16、softmax-loss

layer {name: "loss"type: "SoftmaxWithLoss"bottom: "ip1"bottom: "label"top: "loss"
}

ps:

solver算是caffe核心的核心,它协调着整个模型的运作,caffe程序运行必须带一个参数就是solver配置文件。
caffe提供了六种优化算法来求解最优解,在solver配置文件中,通过设置type类型来选择

Stochastic Gradient Descent (type: "SGD"),
AdaDelta (type: "AdaDelta"),
Adaptive Gradient (type: "AdaGrad"),
Adam (type: "Adam"),
Nesterov’s Accelerated Gradient (type: "Nesterov") and
RMSprop (type: "RMSProp")

Solver的流程:

1. 设计好需要优化的对象,以及用于学习的训练网络和用于评估的测试网络。(通过调用另外一个配置文件prototxt来进行)2. 通过forward和backward迭代的进行优化来跟新参数。3. 定期的评价测试网络。 (可设定多少次训练后,进行一次测试)4. 在优化过程中显示模型和solver的状态
#每一次的迭代过程
• 1、调用forward算法来计算最终的输出值,以及对应的loss
• 2、调用backward算法来计算每层的梯度
• 3、根据选用的slover方法,利用梯度进行参数更新
• 4、记录并保存每次迭代的学习率、快照,以及对应的状态。

caffe的prototxt文件相关推荐

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

    浅谈caffe中train_val.prototxt和deploy.prototxt文件的区别 标签: caffe深度学习CaffeNet 2016-11-02 16:10 1203人阅读 评论(1) ...

  2. caffe中solver.prototxt文件参数解释

    在训练或者微调网络时我们需要设置一些参数,在caffe中这些参数保存在sovler.prototxt文件中(当然这只是一个文件名,你也可以随意换成其他的名称).在下面的代码中以注释的形式解释每一个参数 ...

  3. caffe将用训练好的caffemodel和train_val.prototxt文件分类新的一张图片-下篇--caffe学习(7)

    接上篇caffe将用训练好的caffemodel和train_val.prototxt文件分类新的一张图片-上篇 得到deploy.prototxt文件之后,我们可以自己编写python代码实现对单个 ...

  4. 利用prototxt文件绘制网络的结构图

    本文转自:http://blog.csdn.net/u014568921/article/details/53947006 如何对prototxt文件绘制网络的结构图 caffe 使能python接口 ...

  5. 根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件

     根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件 发表于2016/8/6 19:43:11  1218人阅读 本文参考博文 (1)介绍 *_tra ...

  6. train_val.prototxt文件和deploy.prototxt文件开头的区别

    1.开头不同 对train_val.prototxt文件来说,开头部分定义训练和测试的网络及参数 对deploy.prototxt文件来说,开头部分定义实际运用场景的配置文件,其参数不定义数据来源,仅 ...

  7. caffe中通过prototxt文件查看神经网络模型结构的方法

    在修改propotxt之前我们可以对之前的网络结构进行一个直观的认识: 可以使用http://ethereon.github.io/netscope/#/editor 这个网址. 将propotxt文 ...

  8. solver.prototxt文件里面参数含义及其设置

    solver 是caffe的核心之重,它是整个模型运行的参数配置文件.运行代码一般为: #caffe train --solver=*_solver.prototxt 在DL中,损失函数(loss f ...

  9. caffe:无法读取文件cuda8.0.props

    在使用VS2015导入老版本的caffe程序时候,导入一个solution的多个工程,其中一个project不能导入,出现: 无法读取文件 cuda8.0.props 错误, 问题:新的win10 系 ...

最新文章

  1. excel模糊匹配两列文字_高效便捷的Word、Excel操作技巧
  2. 一个ioc例子jdk和spring版本导致问题
  3. ado.net 插入一条数据
  4. UE4学习-材质快捷键及材质帮助手册
  5. 设计模式学习笔记——命令(Command)模式
  6. 解决Mac没有任何来源问题
  7. list去除重复值的方法(面试高频)
  8. C语言小程序显示心形,如何用vc6.0编出来一个心形
  9. JAVA操作文件大全(一)
  10. java打印菱形图案
  11. 开始学习 limodou 的 Django step by step 了
  12. 2018百战程序员大数据全套教程
  13. ​新手到底如何入门PLC?
  14. 速读原著-TCP/IP(Archie、WAIS、Gopher、Veronica和WWW)
  15. msf生成windows后门程序
  16. 如果楼市崩盘,我们怎么活?
  17. 联想Lephone与Apple iPAD的完美组合
  18. 利用SUS实现自动补丁管理
  19. 西北师范大学计算机科学与工程学院院长,西北师范大学计算机科学与工程学院.doc...
  20. 详译:RESIDUAL AND PLAIN CONVOLUTIONAL NEURAL NETWORKS FOR 3D BRAIN MRICLASSIFICATION

热门文章

  1. 解决Matlab Help文档需要登录才能查看的问题
  2. 【OFDM频域同步】基于OFDM数字电视地面广播系统中频域同步技术matlab仿真
  3. 基于FPGA的HDB3数字编码器设计
  4. Http 面试知识点
  5. 我能考虑到的数组(老)方法就这些了(es5)
  6. 深入理解volatile
  7. 基于Android官方AsyncListUtil优化经典ListView分页加载机制(二)
  8. CNN收购Beme视频分享APP 11个员工也将加入
  9. Android中Activity之间的数据传递(Intent和Bundle)
  10. 兰蔻御用运维总结之一