对于使用深度学习进行图像处理,Caffe是一个不错的框架选择。但是安装起来,并不是如想象中容易,稍不注意就会出错。
网上关于Ubuntu14.04下配置Caffe的资料很多,但是总是要自己亲自配置才能获得自己的心得。
从操作系统的版本转换到cuda的版本等变换,加上一下bug,中途浪费了许多时间,折腾了一两天,终于还是配置成功了。
具体参照的链接是:http://blog.csdn.net/u012746763/article/details/50352930
还有一个有cuda安装模式的参考链接主要为:http://www.cnblogs.com/dupuleng/articles/4213834.html
感谢网上许多热心伙伴的贡献,让新入门的可以少走弯路。
由于目前的项目并没有引入GPU使用,只是一个进行初步的测试版本,因此没有配置cuda和GPU模式,仍然使用CPU运行模式。
【注:以下指令都是控制台指令,通过Ctrl+Alt+T快捷打开】
1. 安装【build-essentials】
安装开发所需要的一些基本的包,
sudo apt-get install build-essential
如果不可行,则可以执行:
sudo apt-get update
2. 安装【BLAS】
BLAS 有三类,默认的是ATLAS,其余两种是MKL和OpenBlas, 我一开始安装的OpenBlas,但是后面安装不正确导致caffe部分出错,因此后来是安装的ATLAS,如果要求不高,建议安装ATLAS,方便和安装简单。
sudo apt-get install libatlas-base-dev
注意,这里的选择在后面caffe的配置文件中会需要配置。如果换过,也要记得后面的配置需要修改。
3. 安装【OpenCV】
许多人建议无需手动安装,可以直接下载Github的安装版本(https://github.com/jayrambhia/Install-OpenCV),下载之后进行解压,由于是zip格式的文件,
解压指令为:
unzip -o XXX.zip -d XXXPATH
这里的XXX.zip是路径下的该压缩文件,XXXPATH是指定想要解压到的路径,这里需要注意最好输入绝对路径,当然不怕出错的话,也可以使用相对路径。解压之后可以先check一下。
当然如果是使用git,则直接使用git clone +链接,就直接不需要解压了。这个需要事先已安装git的情况下(sudo apt-get install git)
安装【2.4.9】,不知道为什么网上为什么建议安装2.4.10,我试了两次,都是安装到不到一半电脑都完全卡死,完全不动。因此,这里我建议安装OpenCV2.4.9,这里也有一个链接(https://github.com/bearpaw/Install-OpenCV),其实都可以的。
下载之后,进行解压,然后进入下面目录:
cd Install-OpenCV/Ubuntu/2.4/
给当前目录下的所有sh文件添加可执行权限:
chmod +x *.sh
安装OpenCV2.4.9:
sudo ./opencv2_4_9.sh
任意路径下可执行
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
5. 配置和编译【Caffe】
接下来就可以进行配置了。
当然,首先是下载Caffe,可以从官网上给出的链接下载:https://github.com/BVLC/caffe按照之前相同的方法解压(或者git)之后,进入到caffe目录,然后复制配置文件:
cd ./caffe-master/
cp Makefile.config.example Makefile.config
接下来就是修改配置文件Makefile.config:
sudo vim Makefile.config
(如果权限不足,可以先修改文件的权限:
chmod g+w Makefile.config
主要修改的部分为:
1. 将# CPU_ONLY = 1前面的#去掉 并按“tab”键,(默认从tab处执行),因为这里没有安装GPU,需要使用CPU运行。
2. BLAS := atlas, 这是默认设置,如果不是安装的这个,则需要修改。具体修改,该语句上面有注释提示。
3. 设置MATLAB_DIR的路径:如我的是/usr/local/MATLAB/R2014a
这里,提供非常好的MATLAB for Linux的安装教程,
http://blog.csdn.net/lanbing510/article/details/41698285
http://www.cnblogs.com/txg198955/p/5477258.html
如果其中的下载链接失效,可以联系我。
有的时候安装好后指令输入sudo matlab之后,显示matlab command not found.的错误。
这个的解决方法是:
cd /usr/local/bin
sudo ln -s /usr/local/MATLAB/R2014a/bin/matlab matlab
之后只要在终端输入matlab就可以了。
设置完成后,则开始编译过程:
主要过程为:
sudo make all -j4
sudo make test
sudo make runtest
这里,需要注意的是,sudo必须加上,不然中间会报错....Permission Denied...。 另外,第一句中的j后面的数字是可以根据自己的机器的内核数改变,数字越大则表示可以多线程编译,则相应的速度会快。
===========================================================================================
===========================================================================================
【下面的就是自带的数据的训练和测试】
1. 使用MNIST数据集进行训练
(1)对提供的sh文件进行数据的预处理,生成训练和测试数据:
先到caffe下的以下路径:
cd data/mnist
运行:
sudo sh ./get_mnist.sh
(2)把数据处理成LDB文件,
sudo sh ./examples/mnist/create_mnist.sh
生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夹,这里包含了LDB格式的数据集
参考链接中说得很清楚,这里很容易犯的一个错误(事实上,我也犯了相同错误)是,这里如果先把目录切到/examples/mnist下,再进行运行sudo sh ./create_mnist.sh 的话,则会报错的。错误信息为:
./create_mnist.sh: 16: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found
(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
训练成功可得到:
2. 使用MNIST数据集进行测试
训练完成之后,我们当然需要对我们训练的模型进行测试。
我是参照的命令行方式。也可以使用python,matlab进行编译。
首先需要在cd到 ./caffe-master/examples/mnist文件夹下,新建一个sh文件,生成指令为:
touch test_lenet.sh #生成.sh文件
接着进入该文件进行编辑:
vim test_lenet.sh
编辑的内容为(可Copy):
#!/usr/bin/env sh
./build/tools/caffe test --model=examples/mnist/lenet_train_test.prototxt --weights=examples/mnist/lenet_iter_10000.caffemodel -iterations 100
这里其实就只有两行,一定要保证这一点。否则会出错。
保存之后返回到caffe目录下运行测试,跟之前一样。
sudo sh ./examples/mnist/test_lenet.sh
测试成功之后可以得到:
===========================================================================================
==========================================================================================
下面是对Python和MATLAB的编译
1. 安装和编译【Python】
安装Anaconda,许多人推荐安装,因为其能独立于系统自带的python库,并且提供大部分Caffe需要的科学运算Python库。
(1)下载官网:https://www.continuum.io/downloads
(2)下载完成之后,在下载目录执行
bash Anaconda2-4.1.0-Linux-x86_64.sh(替换自己下载的版本哈)
(3)对配置文件进行修改:
sudo vim ~/.bashrc
文件末尾需要添加:
LD_LIBRARY_PATH=your_anaconda_path/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
(4)安装python-dev和python-pip
sudo apt-get install python-dev python-pip
(5)执行pip
cd ./caffe-master/python
for req in $(cat requirements.txt); do sudo pip install $req; done
(6)编译
sudo make pycaffe
2. 安装和编译MATLAB
安装教程的链接之前提供过了,这里假设已经安装好MATLAB
(1)修改caffe目录下Makefile.config中MATLAB_DIR的路径,如果之前已经修改过,这里可跳过。
(2)cd到caffe目录下,运行
sudo make matcaffe
成功页面: