caffe框架学习(layer)

caffe train:

1、Data预处理

2、定义网络(编辑 prototxt配置文件)

3、定义超参数(编辑 prototxt配置文件)

4、训练得到caffemodel

代码举例:以mobilefacenet为例:

name: "mobilefacenet"       \名字随意起
input: "data"                        \数据层
input_shape {
top: "data"                           \一般用bottom表示输入,top表示输出
top: "label"   
include{

  phase : TRAIN              \include写了谁就说明此时的输入在何时用,如果没有include,则表示数据既在测试test中,又在训练train中

mean_file:                          \用一个配置文件来进行均值的操作

scale:data上每一个像素点都是0-255,将其归一化到【0-1】

mirror:代表数据增强:0/false代表开启,1/true代表关闭

crop_size:随机裁剪更小的区域,也属于数据增强

batch_size:每次批处理的个数

backend: LMDB  :选用数据的名称(LMDB、HDFS数据源)

不用数据源,直接用文件夹里的图片,就要将txt列出每个图片的路径


}

 

layer {
    bottom: "data"
    top: "conv_1_conv2d"
    name: "conv_1_conv2d"
    type: "Convolution"
    convolution_param {
        num_output:  64              \卷积核(filter)的个数
        kernel_size: 3                  \卷积核的大小
        pad: 1                              \扩充边缘,0为不扩充
        stride: 2                           \步长
        bias_term: false

卷积层中lr_mult:控制当前层的学习率,一般偏置顶的学习率是权值学习率的两倍。

w(权值)和b(偏置项)初始化


    }
}

激活函数:Relu(一般和卷积层连在一起)

 layer {
  bottom: "conv_1_batchnorm"
  top: "conv_1_relu"
  name: "conv_1_relu"
  type: "PReLU"
}

全连接层:将之前提取的特征总结一下,变成向量形式

 

loss和softmax

 

reshap层

dim=0是不变的

dim=-1是自动推断大小 

dropout:在前向传播或者反向传播时,杀死一些神经元防止过拟合

参数dropout_ratio是杀死多少百分比

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值