作为小码农的我,昨天就在装这个东东了,主要参考第一篇博文,但是过程发现很多问题,经过反反复复,千锤百炼,终于柳暗花明,我把这个caffe给搞定了,是故,我发布出来,后之来者,欲将有感于斯文~
Python安装和调试;第三部分 Matlab安装和调试;第四部分
Caffe的安装和测试。
第一部分:nVidia驱动和CUDA Toolkit的安装和调试
这里以CUDA 7.0为例。
一、CUDA Repository
获取CUDA安装包,安装包请自行去NVidia官网下载。
$ sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb
$ sudo apt-get update
二、CUDA Toolkit
$ sudo apt-get install -y cuda
三、Environment Variables
$ export CUDA_HOME=/usr/local/cuda-7.0
$ export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
$ PATH=${CUDA_HOME}/bin:${PATH}
$ export PATH
第二部分 Python安装和调试
1. 安装IDE运行环境
选择一个适合你的IDE运行环境,我是用的是Spyder,因为它内置了 iPython 环境,Caffe有不少的程序是基于 iPython 环境完成的。安装方法很简单,直接在Ubuntu软件中心搜索“spyder”即可安装。
2. iPython NoteBook 安装
另外一个比较推荐的方法是使用iPyhthon NoteBook(基于浏览器的Python IDE),特别是适合需要用Python做教程的老师们,可以直接导出.py, .ipynb, html格式,安装步骤如下:
$ sudo apt-get install -y ipython-notebook pandoc
启动(自动打开浏览器):
$ ipython notebook
一个简单的使用iPython NoteBook生成的html的例子:examples_notebook.html example_notebook.ipynb
3. 配置和编译pycaffe
第三部分 Matlab安装和调试
1. 降级安装gcc/g++版本为4.7.x
(1). 下载gcc/g++ 4.7.x
$ sudo apt-get install -y gcc-4.7
$ sudo apt-get install -y g++-4.7
(2). 链接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++
2. 暴力引用新版本GLIBCXX_3.4.20
$ sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.20 然后cd /usr/local/MATLAB/R2014a/sys/os/glnxa64/
$ sudo mv libstdc++.so.6 libstdc++.so.6.backup
$ sudo ln -s libstdc++.so.6.0.20 libstdc++.so.6
$ sudo ldconfig -v
通过命令“strings /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已经成功包含了GLIBCXX_3.4.20,如果已经存在,基本上就成功了。
6.编译Matlab用到的caffe文件(见第五部分)
第四部分 Caffe的安装和测试
在caffe的github上下载安装包,解压得到caffe-master文件夹。
一、安装BLAS
这里可以选择(ATLAS,MKL或者OpenBLAS),这里使用MKL。
$ tar zxvf parallel_studio_xe_2015.tar.gz (如果你是直接拷贝压缩文件过来的)
$ chmod a+x parallel_studio_xe_2015 -R
$ sudo ./install_GUI.sh
二、MKL与CUDA的环境设置
1. 新建intel_mkl.conf, 并编辑之:
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
2. 新建cuda.conf,并编辑之:
$ sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
/lib
3. 完成lib文件的链接操作,执行:
$ sudo ldconfig -v
三、安装OpenCV 3.0.0
To
install the dependencies required from OpenCV, just run the following commands:
sudo
apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev
libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
Create a temporary directory, which we denote as <cmake_binary_dir>, where you want to put the generated Makefiles, project files as well the object files and output binaries.
-
Enter the <cmake_binary_dir> and type
cmake [<some optional parameters>] <path to the OpenCV source directory>
For example
cd ~/opencv mkdir release cd release cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
-
Enter the created temporary directory (<cmake_binary_dir>) and proceed with:
make sudo make install
配置openCV参数设置
sudo gedit /etc/ld.so.conf.d/opencv.conf
sudo ldconfig
sudo gedit /etc/bash.bashrc 加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
至此,OpenCV安装配置完毕
四、安装其他依赖项
1. Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:
$ tar zxvf glog-0.3.3.tar.gz 然后cd进入目录
$ ./configure
$ make
$ sudo make install
如果没有权限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以kill了。
2. 其他依赖项,确保都成功
$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
$ sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
五、安装Caffe并测试
1. 安装pycaffe必须的一些依赖项:
$ sudo apt-get install -y python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
$ sudo apt-get install -y protobuf-c-compiler protobuf-compiler
2. 安装配置nVidia cuDNN 加速Caffe模型运算
a. 安装cuDNN
该改版本caffe-master默认支持cudnn-6.5-linux-x64-v2,安装前请去先官网下载最新的cuDNN。建议安装v3版本,把一下相应6.5改成7.0即可,方法一样。
$ sudo cp cudnn.h /usr/local/include
$ sudo cp libcudnn.so /usr/local/lib
$ sudo cp libcudnn.so.6.5 /usr/local/lib
$ sudo cp libcudnn.so.6.5.48 /usr/local/lib
b. 链接cuDNN的库文件
$ sudo ln -sf /usr/local/lib/libcudnn.so.6.5.48 /usr/local/lib/libcudnn.so.6.5
$ sudo ln -sf /usr/local/lib/libcudnn.so.6.5 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v
3. 从github上下载caffe,为Caffe-master的文件夹,cd进去,生成Makefile.config配置文件,执行:
$ cp Makefile.config.example Makefile.config
4. 配置Makefile.config文件(仅列出修改部分)
sudo gedit Makefile.config
a. 启用CUDNN,去掉"#"(目前caffe-master仍然只支持R1版本)
USE_CUDNN := 1
b. 启用GPU,添加注释"#"
# CPU_ONLY := 1
c. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
温馨提示:ctr+f搜索在后面添加多余的内容
d. 启用Intel Parallel Studio XE 2015 Professional Edition for C++ Linux
BLAS := mkl
e. 配置路径,实现caffe对Python和Matlab接口的支持
PYTHON_LIB := /usr/local/lib
MATLAB_DIR := /usr/local/MATLAB/R2014a
f. 启用python_layer
WITH_PYTHON_LAYER :=1
5. 配置Makefile文件(实现对OpenCV 3.x的支持)
sudo gedit Makefile
查找“Derive include and lib directories”一节,修改“LIBRARIES +=”的最后一行,增加opencv_imgcodecs
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
6. 编译caffe-master!!!一定要重启电脑,重启电脑,因为显卡驱动装完需要重启才能生效,本人在这里搞了两次,后来才发现问题的本质,哎。"-j8"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
$ make all -j8
$ make test -j8
$ make runtest -j8
编译Python和Matlab用到的caffe文件
$ make pycaffe -j8
$ make matcaffe -j8
六、使用MNIST数据集进行测试
cd进入caffe-master目录下
1. 数据预处理
$ sh data/mnist/get_mnist.sh
2. 重建lmdb文件。Caffe支持三种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,根据自己需要选择不同输入吧。
$ sh examples/mnist/create_mnist.sh
生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集
3. 训练mnist
$ sh examples/mnist/train_lenet.sh
至此,Caffe安装的所有步骤完结,下面是一组简单的数据对比,实验来源于MNIST数据集,主要是考察一下不同系统下CPU和GPU的性能。可以看到明显的差别了。
本人在配置caffe环境的过程中,参考了以下博客,特此说明:
【1】http://ouxinyu.github.io/Blogs/20140723001.htmlCaffe + Ubuntu 15.04 + CUDA 7.0 新手安装配置指南
【2】http://blog.csdn.net/yaoxingfu72/article/details/45363097caffe+cuda7.0+opencv3.0.0+mkl
ubuntu14.04配置
【3】http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation