刚开始接触深度学习,自己试着在虚拟机Linux下搭了搭caffe的框架,因为第一次装走了不少弯路。
因为自己安装的是cpu版本的,查了好多怎么在cpu下搭建的方法,也遇到不少细节方面的问题。所以想自己总结下以后再安装的时候不至于重新摸索一遍。
网上关于Ubuntu14.04下配置Caffe的资料很多,我具体参考的是http://www.aiuxian.com/article/p-2826126.html。由于目前的项目并没有引入GPU使用,只是一个进行初步的测试版本,因此没有配置cuda和GPU模式,仍然使用CPU运行模式。
具体的步骤大致如下:
o 安装依赖库一
o 安装BLAS
o 安装python
o 安装matlab
o 安装opencv
o 安装依赖库二
o 下载Caffe
o 编译Caffe
o 测试mnist
前言:
· 按照Caffe官网安装教程安装Caffe时,要装Cuda,按照Cuda官网安装教程,
命令行输入:$ lspci | grep -i nvidia,发现没有nvidia显卡,所以只能暂时放弃Gpu,改用Cpu了。
GPU版本
正文:
安装依赖库(一):
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev
安装BLAS:
$ sudo apt-get install libatlas-base-dev
· 可以安装OpenBLAS 或 MKL,以提升CPU性能,但是要修改caffe中Makefile文件…
安装python
· 我的Ubuntu14.04自带(可以自行查看自己的python版本。)
· 可使用pycaffe接口
安装matlab
· 如不使用matcaffe接口,可以不装
安装opencv(当然如果是使用Git,则直接使用git clone +链接,就直接不需要解压了。这个需要事先已安装git的情况下(sudo apt-get install git))
· 注:opencv必须安装,且版本为>=2.4或3.0
.安装opencv:(手动解压)(从官网下载自己要的opencv的版本压缩包)
1 pkg-config --modversion opencv
2 pkg-config --modversion opencv
3 cd ~/caffe/opencv-2.4.10/
4 mkdir build
5 cd build/
6 cmake ..
7 make
8 sudo make install
安装完后看版本:pkg-config --modversion opencv 。
下载Caffe:
$ cd ~$ git clone git://github.com/BVLC/caffe.git
然后等安装完就行
编译Caffe:
$ cd ~/caffe$ cp Makefile.config.example Makefile.config
# 修改Makefile.config文件:去掉CPU_ONLY:= 1的注释(因为现在要用cpu)
$ make all
$ make test
$ make runtest
【下面的就是自带的数据的训练和测试】
1. 使用MNIST数据集进行训练
(1)对提供的sh文件进行数据的预处理,生成训练和测试数据:
先到caffe下的以下路径:
cd data/mnist
运行:
./get_mnist.sh
会得到四个文件:t10k-images-idx3-ubyte, t10k-labels-idx1-ubyte, train-images-idx3-ubyte, train-labels-idx1-ubyte
(2)把数据处理成LDB文件
回到cd caffe 然后运行./examples/mnist/create_mnist.sh。生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夹,这里包含了LDB格式的数据集.
(3)训练mnist
由于我们使用的是CPU,因此这里需要在配置文件中进行修改,
#cd examples/mnist/
#vi lenet_solver.prototxt
(建议直接在目录下编辑器更改)
将文件最后的solver_mode:GPU 改为 solver_mode: CPU
修改完成之后,就可以进行训练了:
sudo sh ./examples/mnist/train_lenet.sh
训练完成之后会得到一个lenet_iter_10000.caffemodel。这里训练的时候需要注意之前的问题,仍然是要在caffe根目录进行训练,不能直接到examples/mnist目录下运行sh
训练成功可得到:
Optimization Done。