前两天安装了个ubuntu14.04,准备在ubuntu下配置caffe玩玩,哪知在第一步装ubuntu系统就遇到了麻烦,(听说装ubuntu系统很简单),我之前也装过一次,是挺简单,一次过,但这一次,遇到了电脑硬件和系统不兼容,装了几次都不成功,折腾了一天总算搞定,好了准备装caffe。
首先说说我的电脑情况,内存32G,显卡:Quadro 600,显存1G
1、更新软件源
ubuntu系统装好以后,更新软件源,然后通过系统设置-->软件及更新-->附加驱动,装了对应版本的显卡驱动。
2、安装build-essentials
安装开发所需要的一些基本包
sudo apt-get install build-essential
如果出现essential包不可用的情况,可以执行下列命令解决:
sudo apt-get updata
3、安装ATLAS for Ubuntu
执行命令:
sudo apt-get install libatlas-base-dev
注:ATLAS, MKL,或OpenBLAS都可以,我这里选择安装ATLAS
4、安装matlab
第一步:解决编译器gcc/g++版本问题
因为Ubuntu 14.04的gcc/g++版本是4.8.3,而Matlab 2014a(2015a)的版本是4.7.x所以在使用matla调用mex文件的时候,基本上都会报错,根据报错信息,考虑如下两个解决方案。
A、安装gcc/g++版本为4.7.x,并手动切换为4.7.x
$sudo apt-get install gcc-4.7
$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 (这里“40” 是优先级,值越大优先级越高)
$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.860 (本机自带的设置为60更高的优先级)
选择系统默认的gcc
$sudo update-alternatives --config gcc
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.8 60 auto mode
1 /usr/bin/gcc-4.7 40 manual mode
2 /usr/bin/gcc-4.8 60 manual mode
默认系统用最高优先级的,这里我们选择1就可以了。
g++安装同上,只是把gcc换做g++而已。
B、降级安装gcc/g++版本为4.7.x
(a).下载gcc/g++ 4.7.x
$ sudo apt-get install -y gcc-4.7
$ sudo apt-get install -y g++-4.7
(b).链接gcc/g++实现降级
$ cd /usr/bin
$ sudo rm gcc
$ sudo ln -s gcc-4.7 gcc
$ sudo rm g++
$ sudo ln -s g++-4.7 g++
第二步:安装Matlab
(1)、下载Matlab安装包,我的是2014a
(2)、挂载iso(需新建matlab_iso文件夹):
$ sudo mount -o loop MATHWORKS_R2014A.iso ~/matlab_iso
(3)、开始安装:
$ cd ~/matlab_iso
$ sudo ./install
(4)、选择"install manually without using the internet"项进行安装
(5)、输入"file installation key":12345-67890-12345-67890(随便都行)
(6)、激活:选择”license_405329_R2014a.lic”文件进行激活(在Crack文件夹下面)
(7)、将libmwservices.so复制到/usr/local/MATLAB/R2014a/bin/glnxa64中:
$ sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64 /libmwservices.so
(8)、创建matlab启动栏快捷方式:
打开软件中心,搜索matlab,点击install;
安装路径填入:/usr/local/MATLAB/R2014a
用户权限不填,表示全部用户可用;gcc不填
5、安装CUDA
(1)、下载适合版本的离线安装包
我的是cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
(2)、双击deb包,进入软件中心点安装,或者:
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
(3)、sudo apt-get update
sudo apt-get install cuda
添加路径:
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
检查CUDA版本:
nvcc -V
重启系统:
sudo shutdown -r now
6、安装opencv
这个尽量不要手动安装, Github上有人已经写好了完整的安装脚本:https://github.com/jayrambhia/Install-OpenCV
下载该脚本,解压".zip"文件,解压命令:unzip /home/***/下载/Install-OpenCV-master.zip
进入Ubuntu/2.4 目录, 给所有shell脚本加上可执行权限:chmod +x *.sh
然后安装最新版本 (当前为2.4.9):sudo ./opencv2_4_9.sh
7、安装其他依赖库
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev
sudo apt-get install libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
8、安装caffe-master
(1)、到官网去下载caffe-master
下载地址:https://github.com/BVLC/caffe
(2)、解压,并进入caffe根目录,首先复制一份Makefile.config。也可通过命令执行:
unzip /home/***/下载/caffe-master.zip
cp Makefile.config.example Makefile.config
(3)、修改Makefile.config里面的内容
主要需要修改的参数包括:
CPU_ONLY 是否只使用CPU模式,我这里没有修改,默认不用CPU_ONLY,由于我的显卡计算能力太低,所以我没有安装cudnn,还是默认不用,默认cudnn是被注释了,其余的一些配置可以根据需要修改:
打开opencv,并填写对应的版本。
打开BLAS (使用intel mkl还是OpenBLAS还是atlas),我用的atlas,所以,BLAS := atlas
MATLAB_DIR 如果需要使用MATLAB wrapper的同学需要指定matlab的安装路径, 如我的路径为 /usr/local/MATLAB/R2014a (注意 该目录下需要包含bin文件夹,bin文件夹里应该包含mex二进制程序)
python,为ubuntu14.04自带的,默认路径
(4)、开始编译
make all -j8
make test -j8
make runtest -j8
make pycaffe -j8
make matcaffe -j8
注意:-j8 是指使用几个线程来同时编译,可以加快速度,j后面的数字可以根据CPU core的个数来决定,如果CPU是8核的,则参数为-j8,也可以不添加这个参数,直接使用“make all”,这样速度可能会慢一点儿。
好了,caffe安装就到此结束了,如果中间没有什么差错,恭喜你,安装成功了,下面可以用caffe跑跑网络了。