纯种新手,没玩过caffe,刚学习DL,甚至连linux都是第一次接触。安装中间遇到各种奇葩问题,重装了很多次,才终于装好了,有几个靠谱的安装教程链接和我遇到的已解决问题一起分享给大家。
安装过程中参考的几个很靠谱的教程链接:
http://blog.sciencenet.cn/blog-1583812-841855.html
http://ouxinyu.github.io/Blogs/20140723001.html
(可以搜到很多教程,其实都差不多)
1. ubuntu14.04 安装
U盘安装的,主要是安装中的分区设置,我的分区设置如下:
根分区: \ 100G
Swap交换分区: 2G (随便设置的,有一份参考中设置了和内存相同的16G,并表明内存小于16G时,设置为内存的1.5-2倍)
Home分区:80G (建议设置大一些,但是我就这么点空间了)
(由于我一开始分区时\分区设置太小,导致后来不停的做软连接,所以,记得\分区设置大一些。)2.nVidia驱动和CUDA Toolkit的安装和调试
nVidia官方提供的CUDA安装手册(英文版):https://developer.nvidia.com/rdp/cuda-65-rc-toolkit-download#linux
a.Verify You Have a CUDA-Capable GPU
执行下面的操作,然后验证硬件支持GPU CUDA,只要型号存在于https://developer.nvidia.com/cuda-gpus,就没问题了
$ lspci | grep -i nvidia
b. Verify You Have a Supported Version of Linux
$ uname -m && cat /etc/*release
重点是“x86_64”这一项,保证是x86架构,64bit系统
c.Verify the System Has gcc Installed
$ gcc –version
如果检测出来没有,安装命令 sudo apt-get install gcc ,一般ubuntu14.04已经内置gcc4.8.x版本。
d. Download the NVIDIA CUDA Toolkit
官网下载对应操作系统和位数的cuda的.run文件
在根目录下新建cuda_install文件夹,把run文件放进去
$ mkdir cuda_install
$ md5sum filename
如果md5值不对,重新下载安装包。
e. Handle Conflicting Installation Methods
根据官网介绍,之前安装的版本都会有冲突的嫌疑,所以之前安装的Toolkit和Drievers就得卸载,屏蔽,等等。
$ sudo apt-get --purgeremove nvidia*
(由于我的是新系统,此步省略)
f. Graphical Interface Shutdown
退出GUI,也就是X-Win界面,操作方法是:同时按:CTRL+ALT+F1(F2-F6),切换到TTY1-6命令行模式。
关闭桌面服务:
$ sudo stop lightdm
(会显示 lightdmstop/waiting 说明图形界面关闭成功)
g.Interaction with Nouveau
Nouveau是一个开源的显卡驱动,Ubuntu 14.04 默认安装了,但是它会影响nVidia驱动的安装,所以:
$ sudo vi /etc/modprobe.d/nvidia-graphics-drivers.conf
写入:blacklist nouveau
保存并退出: wq!
检查:
$ cat nvidia-graphics-drivers.conf
$ sudo vi /etc/default/grub
末尾写入:rdblacklist=nouveaunouveau.modeset=0
保存并退出: wq!
检查:$ cat /etc/default/grub
测试nouveau是否被禁用成功很简单:
(1)重启之后明显感觉画质变差
(2)lsmod | grep nouveau,如果显示为空,那么就是卸载成功了。
h.Installation CUDA 6.5
切换到cuda_6.5.14_linux_64.run 所在的目录,然后执行安装命令:
$ sudo cd cuda_install
$ sudo sh cuda_6.5.14_linux_64.run
Accept-yes-Enter-yes-Enter-yes-Enter安装即可。
注:这里一般会遇到的问题:
1.提醒你需要reboot(重启)才能安装,那就用命令行重启,然后在执行一次安装命令:
$sudo reboot
$ sudo cd cuda_install
$sudo sh cuda_6.5.14_linux_64.run
i. ExtraLibraries
安装一些必要的库文件,譬如:OpenGL(e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, and GLX).
$ sudo apt-get install freeglut3-dev build-essential libx11-devlibxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
(可能会有冲突,可以一个一个安装)
j.驱动装完了,可以回到GUI界面了,也可以继续。
$ sudo start lightdm
k. POST-INSTALLATION ACTIONS
1.Environment Setup
$ export PATH=/usr/local/cuda-6.5/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH
检查是否设置成功:
$ echo $PATH
$ echo $LD_LIBRARY_PATH
2.check
检查显卡是否安装成功:
$ sudo apt-get install mesa-utils
$ glxinfo | grep -i nvidia
注:如果出现安装失败,重启系统,重新安装一遍基本都可以解决,实在不行就卸载原来的驱动再安装一遍。
a. 卸载现有驱动
$ sudo nvidia-installer --uninstall
b. 重装CUDA Toolkit
$ sudo sh cuda_6.5.14_linux_64.run
3.(Opthional)InstallWritable Samples
$ cuda-install-samples-6.5.sh
安装到home下,一般不需要,home下载安装过程中会自动生成一个samples文件夹在home下。
4.Verify the installation
a.验证驱动的版本,其实主要是保证驱动程序已经安装正常了
$ cat ./proc/driver/nvidia/version
b.Compiling the examples
$ nvcc –V
如果提示nvcc未安装,其实是nvidia-cuda-toolkit的编译器没有安装完整,则按照提示操作:
$ sudo apt-get installnvidia-cuda-toolkit
可以进行编译,切换到目录~/NVIDIA_CUDA-6.5_Samples:
$ cd/home/usrname/NVIDIA_CUDA-6.5_Samples
$ make
c. Running the Binaries
编译好后,查看设备的基本信息和带宽信息:
$ cd ./bin/x86_64/linux/release
$ ./deviceQuery
$ ./bandwidthTest
注:如果测试的时候出现说运行版驱动和实际驱动不符,原因可能是因为后面安装的nvidia-cuda-toolkit更新了配置文件,所以和原始的Cuda-Samples的配置或者是驱动程序有变化,所以检测无法编译通过。考虑下面的解决方法:
(1)卸载现有驱动
$ sudo nvidia-installer --uninstall
(2)下载合适版本的驱动,并安装:
下载地址:http://www.geforce.cn/drivers
$ sudo sh ./NVIDIA-Linux-x86_64-340.24.run
(3)重装CUDA Toolkit
$ sudo sh cuda_6.5.14_linux_64.run
3.Python和Matlab安装(可选)
a. python安装
在Ubuntu软件中心搜索“spyder”即可安装。
b.Matlab安装我装的是R2014a版本,百度搜索就可以下载,安装激活教程也可以找到。
Python和Matlab的caffe编译在后面caffe相关部分。
4.Caffe安装
a.blas安装
可以选择(ATLAS,MKL或者OpenBLAS)。下面介绍mkl和atlas的安装,这两种我都安装过。
MKL安装:
1.下载并安装英特尔® 数学内核库 Linux* 版MKL,下载链接是:https://software.intel.com/en-us/intel-education-offerings,请下载Student版,先申请,然后会立马收到一个邮件(里面有安装序列号),打开照着下载就行了。
下载完之后,要把文件解压到home文件夹。
2.安装过程:
$ tar zxvf parallel_studio_xe_2015.tar.gz (如果你是直接拷贝压缩文件过来的)
$ chmod a+x /home/username/parallel_studio_xe_2015 -R
$ sudo ./install_GUI.sh
进入图形界面安装,序列号在申请软件时,已发送到邮箱,填写就好了。
一般会提示没有32位的一些包,libstdc++等,无视这个,继续安装。
$ sudo passwd root
3.MKL与CUDA的环境设置
a.新建intel_mkl.conf,并编辑:
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
b.新建cuda.conf,并编辑:
$ sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
/lib
c.完成lib文件的链接操作,执行:
$ sudo ldconfig –v
Atlas安装:
b.OpenCV安装我这个按照所有教程都没有安装成功,所以只用命令行安装了一下,目前为止没有遇到什么问题,安装如下:
$ sudo apt-get installlibopencv-dev python-opencv
其他教程有两种安装方法如下:方法一:
1.安装依赖包
$ sudo apt-get install build-essentiallibgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmakelibswscale-dev libjasper-dev
由于依赖问题,建议分开安装
1. 官网下载Opencv,我下载的是opencv-3.0.0-alpha.zip,移动到主目录下,解压:
$ unzip opencv-3.0.0-alpha
然后执行以下命令:
$ cd opencv-3.0.0-alpha
$ mkdir build
$ cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local ..
(这里可能会遇到CMakeList.txt找不到的问题,把“..”换成CMakeList.txt的所在目录opencv-3.0.0-alpha就可以了。 )
$ make
$ sudo make install
这个过程时间比较久,耐心等待。。。
下面配置library,打开/etc/ld.so.conf.d/opencv.conf,加入/usr/local/lib:
$ sudo su
$ vi /etc/ld.so.conf.d/opencv.conf
/usr/local/lib
$ sudo ldconfig -v
然后更改变量:
$ sudo gedit /etc/bash.bashrc
添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
至此opencv安装配置完成。
方法二:Github上有人已经写好了完整的安装脚本,能自动安装所有dependencies.
链接:https://github.com/jayrambhia/Install-OpenCV
下载该脚本,进入Ubuntu/2.4目录, 给所有shell脚本加上可执行权限
$ chmod +x *.sh
修改脚本opencv2_4_X.sh,在cmake中加入参数
-D BUILD_TIFF=ON
然后安装(当前为2.4.9)
sudo ./opencv2_4_9.sh
脚本会自动安装依赖项,下载安装包,编译并安装OpenCV。整个过程大概半小时左右。
c.安装其他依赖项
1. Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:
$ tar zxvf glog-0.3.3.tar.gz
$ ./configure
$ make
$ sudo make install
ubuntu12.02中,需要安装另外两个依赖项:gflags、lmdb。不装之后编译会出问题。
参考:http://www.shwley.com/index.php/archives/52/
# glog
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install
# gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" &&cmake .. && make VERBOSE=1
make
sudo make install
# lmdbgit
git clone git://gitorious.org/mdb/mdb.git (原教程此处小了git)
cd mdb/libraries/liblmdb
make && make install
2.其他依赖项,确保都成功
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-devlibopencv-dev libboost-all-dev libhdf5-serial-dev
如果使用的是2014年9月之后的新版Caffe,对于ubuntu14.04来说,需要安装以下依赖文件:
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-devprotobuf-compiler
d.安装caffe
下载caffe-master.zip,并解压。
1. 切换到Caffe的下载文件夹,然后执行:
$ cp Makefile.config.example Makefile.config
修改新生成的Makefile.config文件,修改“BLAS := mkl”,这个非常重要。(我安装的是atlas,所以默认配置)
2. 安装配置nVidia cuDNN 加速Caffe模型运算
a. 编辑确保Makefile.config,启用GPU “# CPU_ONLY := 1”,并设置 “USE_CUDNN := 1”。
b. 安装cuDNN
cuDNN 介绍和下载地址:cuDNN Introdution and Download(下载在最下面,需要注册)
$ 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
c. 链接cuDNN的库文件
$ sudo ln -sf /usr/local/lib/cudnn.so.6.5.48 /usr/local/lib/libcudnn.so.6.5
不做链接,可能会出现这个报错:“./build/tools/caffe:error while loading shared libraries: libcudnn.so.6.5: cannot open sharedobject file: No such file or directory”那是因为cuDNN没有链接成功,只能做一下硬链接。
$ sudo ldconfig -v
3. 编译caffe-master。"-j8"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
$ make all -j8
$ make test -j8
$ make runtest -j8
可能出现的的错误:
1.libcudnn.so.6.5:cannot open shared object file,查看LD_LIBRARY_PATH发现环境变量没问题,cuda的配置文件没有加进去,加进去就好了。
2.如果提示: make: protoc: 命令未找到,那是因为protoc没有安装,安装一下就好了。
$ sudo apt-getinstall protobuf-c-compiler protobuf-compiler
4.python和matlab编译
a. 配置路径,实现caffe对Python和Matlab接口的支持,编辑Makefile.config:
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
PYTHON_LIB := /usr/local/lib
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
MATLAB_DIR := /usr/local/MATLAB/R2014a
b.编译Python和Matlab用到的caffe文件
$ make pycaffe -j8
$ make matcaffe -j8
注:这里应该会提醒gcc的版本问题,因为matlab R2014a需要的gcc版本是4.7.x,好吧,换了吧。
5.使用MNIST数据集进行测试
注:此处运行.sh文件时,都需要在caffe-master目录下,若再进入子目录,则会造成运行失败
Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
1. 数据预处理
$ sh data/mnist/get_mnist.sh
2. 重建lmdb/leveldb文件。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
至此,完成所有步骤。