ubuntu快速安装Caffe (CPU_ONLY,无cuda、无cuDNN)

没想到第一篇CSDN博文献给了深度学习,看来我从此走向了一条研发狗的漫漫不归路。幸运的是,好歹也有点文字可写,纵使酸腐不堪,如果有助于人,倒是一件快意的事。正所谓苦中寻乐泪作酒,请君入席来一壶?

正常点哈~


都说Caffe难配置,实际上再简单不过了。如果想要简单快速上手Caffe,完全没必要安装cuda和cuDNN。除了一些更新库外,直接编译就好了,只有中间一些Makefile需要修改,如果你不想反复求虐,这一点你一定得注意哟~

1.默认已安装opencv3.0.0以上版本。一定要是opencv3.0以上哦,没装好的请自觉安装完。

2.安装ATLAS:

sudo apt-get install libatlas-base-dev

安装完后就完全不需要去理会网上那些帖子里说的MKL,OPENBLAS之类的库了。

3.安装各种依赖项目:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

最后这个protobuf是啥呢,protobuf是google公司的一个开源项目,主要功能是把某种数据结构的信息以某种格式保存及传递,类似微软的XML,但是效率较高。目前提供C++、java和python的API。

protobuf简介:http://blog.163.com/jiang_tao_2010/blog/static/12112689020114305013458/

protobuf使用实例 :http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/

4.下载Caffe:

git clone git://github.com/BVLC/caffe.git 

5. 安装Caffe:

(1)复制Makefile.config:

cd caffe

cp Makefile.config.example Makefile.config 

(2)修改Makefile.config文件:

gedit Makefile.config

打开Makefile.config文件后: 

1)在# CPU_ONLY := 1这一行去掉#,使得CPU_ONLY模式生效;

2)在# OPENCV_VERSION := 3这一行去掉#,使得有关opencv3.0的链接生效,否则会出现类似这样的问题:

   .build_release/lib/libcaffe.so: undefined reference tocv::imread(cv::String const&, int)'

    .build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&,

     issue链接: https://github.com/BVLC/caffe/issues/2348

 3)

sudo make all -j4 

   -j4 是指使用几个线程来同时编译,可以加快速度,j后面的数字可以根据CPU core的个数来决定,如果CPU是4核的,则参数为-j4,也可以

   不添加这个参数,直接使用“make all”,这样速度可能会慢一点儿。

4)编译

sudo make test
sudo make runtest

编译完后就可以开始测试Caffe的数据集,整个过程不到20分钟~

6.下载Mnist手写体数字dataset:

sudo sh data/mnist/get_mnist.sh      
sudo sh examples/mnist/create_mnist.sh

等偷偷在LeCun老师那下载完后,会得到两个数据集:mnist-train-leveldb/, 和mnist-test-leveldb/.就可以开始训练啦~(这里包含了LDB格式的数据集./examples/mnist/create_mnist.sh)

LeNet:
caffe中用的模型结构是非常著名的手写体识别模型LeNet,唯一的区别是把其中的sigmoid激活函数换成了ReLU,整个结构中包含两个convolution layer、两个pooling layer和两个fully connected layer。结构定义在$caffe-master/examples/mnist/lenet_train_test.prototxt中。定义MNIST Network:
该结构定义在lenet_train_test.prototxt中,需要对google protobuf有一定了解并且看过Caffe中protobuf的定义,其定义在$caffe-master/src/caffe/proto/caffe.proto

7.训练Mnist数据集

sudo gedit examples/mnist/lenet_solver.prototxt

lenet_solver.prototxt 文件设定运行CPU 版本或者 GPU 版本,修改最后一行:solver_mode: CPU

开始训练:

sudo sh examples/mnist/train_lenet.sh
最终的model,会存为两个caffemodel,caffe/examples/mnist/lenet_iter_5000.caffemodel 和caffe/examples/mnist/lenet_iter_10000.caffemodel

接下来的呢,就是可以载入这两个caffemodel来做手写数字识别啦,后期再写啦~

                                       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值