我所认识的CAFFE

快要毕业了,学习了一段时间的caffe,总想着写点什么,免得以后不用了,就忘了,辜负了自己这段时间的经历。

caffe是贾扬清及一干大神们开发的一款基于C++的深度学习框架,这个框架多用于计算机视觉相关的深度学习(目前除了jeffdonahue似乎还没有其他的RNN相关网络被收录),所以如果做自然语言等需要用到其他网络的、但是又不想自己写网络代码的同学建议再深入调研下,看caffe目前有没有收录相关网络。

 

Caffe的windows安装建议使用happynear编译好的,详细教程可以参看中文博客。Linux下的话,caffe的开源官网上有详细的教程,我就不班门弄斧了。

 

Caffe的运行十分简单,不用去深究源代码的运行机制,只需要对自己调用的网络所含参数进行设定就可以了。

首先需要设计网络层,网络层实际基本结构像一个无环图集合一样:比如

Name: “example-net”

Layer{name:”data”--------}

Layer{name:”conv”--------}

Layer{name:”pool” -------}

Layer{name:”loss”--------}

我们常用的卷积层定义可以为:

layer {

  name:"conv1" #层名

  type:"Convolution" #层类型

  bottom:"data" #上层数据来源,注意:需要与某一层中的top名相同

  top:"conv1" #输出数据名

  param {

    lr_mult: 1#参数

  }

  param {

    lr_mult: 2#参数

  }

  convolution_param{ #卷积自带参数

    num_output: 20

    kernel_size: 5

    stride: 1

    weight_filler {

      type:"xavier"

    }

    bias_filler {

      type:"constant"

    }

  }

}

网络层设计好了,还需要写一个参数文件,一般是***_solver.prototxt

参数文件里面写入了需要调用的网络路径、是否需要测试、测试迭代次数、测试间隔次数、基础学习率、模型保存路径、使用GPU/CPU等一系列参数

# The train/test net protocol buffer definition

net: "examples/mnist/lenet_train_test.prototxt"

# test_iter specifies how many forward passes the testshould carry out.

# In the case of MNIST, we have test batch size 100 and100 test iterations,

# covering the full 10,000 testing images.

test_iter: 100

# Carry out testing every 500 training iterations.

test_interval: 500

# The base learning rate, momentum and the weight decayof the network.

base_lr: 0.01

momentum: 0.9

weight_decay: 0.0005

# The learning rate policy

lr_policy: "inv"

gamma: 0.0001

power: 0.75

# Display every 100 iterations

display: 100

# The maximum number of iterations

max_iter: 10000

# snapshot intermediate results

snapshot: 5000

snapshot_prefix: "examples/mnist/lenet"

# solver mode: CPU or GPU

solver_mode: GPU

训练网络,一般都是写一个脚本来调用设计好的网络来直接调用,脚本内容一般情况下如下:

.\bin\caffe.exe #调用的caffe程序

Train#是训练还是测试

 --solver=data/coco/lrcn_solver.prototxt #网络路径

 --weights=data/coco/mil_iter_70000.caffemodel #如果是微调,则有此部分,否则没有

 --gpu 1#使用gpu编号

Pause

 

所以,简单的用caffe训练深度学习由三部分组成:

1:网络设计

2:参数设定文件

3:运行脚本

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值