参考很多文章,以这篇为主:http://www.linuxidc.com/Linux/2016-11/136768.htm
这篇算是自己对caffe学习的一个总结系列的开头。首先因为caffe的依赖项比较多,配置起来也比较麻烦。这篇算是比较详尽地把caffe的各种相关配置说清楚。转载请注明出处。
推荐Ubuntu 14.04版本,因为digits的支持比较好。显卡支不支持GPU加速要搞清楚啊,不支持就全用CPU算吧,别浪费时间折腾cuda了。
大家基本要按照官方教程上面来。但是官方教程有的坑没有点出来的,本文也一并列上了。
一、显卡的安装
禁用nouveau驱动,nouveau是ubuntu自带的对nivida的开源驱动,对安装nvidia的官方驱动会有问题,所以先将其禁用。
按Ctrl Alt F1 进入tty1控制台,输入
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
在里面写上
blacklist nouveau
options nouveau modeset=0
按esc 输入:wq 保存退出
ps:vim编辑器很好用啊,还不会的小伙伴要抓紧时间学啊。
执行
lspci | grep nouveau
查询pci总线中是否还有nouveau,grep后面接正则表达式过滤。
什么都没有说明禁用成功。
重启后登录时,可能会循环出现填写登录密码,不能进入系统的情况,按Ctrl Alt F1,登录,
卸载显卡方法:
sudo apt-get remove --purge nvidia*
安装显卡驱动:
$ sudo add-apt-repository ppa:xorg-edgers/ppa
$ sudo apt-get update
$ sudo apt-get install nvidia-352
执行sudo start lightdm 输入密码能看到桌面就ok啦
ps:显卡驱动挂掉之后很可能你就看不到系统界面了,启动之后显示器一团漆黑,其实系统是在运行的。我的做法是先提前装好了SSH服务,碰到这种情况就通过另一台电脑SSH登陆进去安装驱动。
二、CUDA安装
CUDA官网下载。其实应该先下载好的,如果没来得及用图形界面下载,用wget, curl什么的下载也一样。 据说331的驱动有坑啊,大家不要用那个驱动。下面安装一些依赖项/
sudo service lightdm stop
sudo apt-get install g
sudo apt-get install git
sudo apt-get install freeglut3-dev
首先在官网上下载安装文件(链接前文已经提供):
我下载的是deb本地安装文件,下载完成后,按照文档提示的命令安装:
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda
下载了下方的Installation Guide for Linux,里面有关于环境变量的设置方法:
如果有,则说明安装成功。没有可以按照下面方法卸载:
sudo /usr/local/cuda-7.5/bin/uninstall_cuda_7.5.plsudo /usr/bin/nvidia-uninstall
最后,配置环境变量,我们直接放在系统配置文件profile里面,先打开profile文件
sudo vi /etc/profile
在最后面加入两行代码:
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
执行 source /etc/profile 使环境变量生效
至此cuda安装完毕
三、CUDNN安装
CUDNN是给CUDA加速的。cuDNN是GPU加速计算深层神经网络的库。cudnn官网下载。貌似下载要先注册,审核通过还要几天时间。下载好之后解压。
执行如下命令:
sudo tar xvf cudnn-7.0-linux-x64-v4.0-prod.tgz && cd cuda/include && sudo cp *.h /usr/local/include/ && cd ../lib64 && sudo cp lib* /usr/local/lib/ && cd /usr/local/lib && sudo chmod r libcudnn.so.4.0.7 && sudo ln -sf libcudnn.so.4.0.7 libcudnn.so.4 && sudo ln -sf libcudnn.so.4 libcudnn.so && sudo ldconfig
这样CUDNN就安装完毕了,是不是很简单啊。
四、Anaconda的安装
到https://www.continuum.io/downloads 下载anaconda,推荐使用linux版的Python 2.7版本,因为tensorflow中的有些东西不支持python3.5(如cPickle)。
下载成功后,在终端执行(2.7版本):
# bash Anaconda2-4.1.1-Linux-x86_64.sh
或者3.5 版本:
# bash Anaconda3-4.1.1-Linux-x86_64.sh
在安装的过程中,会问你安装路径,直接回车默认就可以了。有个地方问你是否将anaconda安装路径加入到环境变量(.bashrc)中,这个一定要输入yes
安装成功后,会有当前用户根目录下生成一个anaconda2的文件夹,里面就是安装好的内容。在终端可以输入
conda info 来查询安装信息
输入conda list 可以查询你现在安装了哪些库,常用的python, numpy, scipy名列其中。如果你还有什么包没有安装上,可以运行
conda install *** 来进行安装(***代表包名称),如果某个包版本不是最新的,运行 conda update *** 就可以了。
五、caffe的安装
首先先安装opencv,推荐2.4的版本。opencv1.x是纯C语言编写的,2.x c和c 的包都有,opencv3是只用c 写的。为了别人写的代码也能正常运行,还是推荐装2.x。
opencv2.4安装很简单了,下载下来解压,然后进入目录make, sudo make install就搞定了。
caffe官方下载 基本按照官方安装指南就可以了,l另外一个方法就是命令行下载
下载caffe:
sudo git clone https://github.com/BVLC/caffe.git
如果你没安装Git,请阅读博客:Ubuntu Git安装与使用。
然后编译caffe:先安装依赖:
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
$ sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
贾扬清大神还说了,大家一定要看清楚啊!
下面开始配置caffe并且开始编译了。
sudo cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired) make all make test make runtest
配置文件有几点要注意:
# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1
# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1BLAS choice:# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlasBLAS := atlas
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
# BLAS_INCLUDE := /path/to/your/blas
# BLAS_LIB := /path/to/your/blas
这几个地方根据自己情况选择。
make all没有问题的话,caffe就算成功了啊。
保存后重新编译: (如果电脑有8个线程的话,就在后面加 -j8 ,可以加快编译速度)
sudo make clean
sudo make all -j8
sudo make test -j8
sudo make runtest -j8
本人编译的时候最后一步的时候,出现这样的错误:
libcudart.so.7.5 cannot open shared object file: No such file or directory
网上有一堆介绍,怎么设置环境变量的(我们分明已经设置过了),可以这样检查是否已经添加环境变量:
$ echo $PATH$ echo $LD_LIBRARY_PATH
可以看到,环境变量已经添加好。
解决方法是这样,将一些文件复制到/usr/local/lib文件夹下:
sudo cp /usr/local/cuda-7.5/lib64/libcudart.so.7.5 /usr/local/lib/libcudart.so.7.5 && sudo ldconfig
sudo cp /usr/local/cuda-7.5/lib64/libcublas.so.7.5 /usr/local/lib/libcublas.so.7.5 && sudo ldconfig
sudo cp /usr/local/cuda-7.5/lib64/libcurand.so.7.5 /usr/local/lib/libcurand.so.7.5 && sudo ldconfig
再次,尝试sudo make runtest命令,出现如下:
至此,caffe安装完成。
将caffe路径导入环境变量,执行命令如下:
sudo vi ~/.bashrc
在最后加上 export PYTHONPATH=/home/***/caffe/python:$PYTHONPATH
export CAFFE_HOME=/home/***/caffe:$CAFFE_HOME
之后执行 sudo ldconfig 来生效
接着在caffe里面执行sudo make pycaffe ,没有错误就OK了,测试caffe是否成功,
在终端输入 python 回车,import caffe 没有错误表示ok,
如果出现No module named google.protobuf.internal
解决办法参考链接:http://www.linuxidc.com/Linux/2016-11/136772.htm
sudo chmod 777 -R anaconda2(文件夹) 改变权限 然后
conda install protobuf
就搞定啦~
六、DIGITS安装
参考链接:http://www.linuxidc.com/Linux/2016-11/136774p21.htm
一、安装digits 3.0
digits是运行在cuda和caffe基础上的,所以要先配置好cuda caffe那是毫无疑问的了。还不会配置的,请参考:Caffe学习系列(1):安装配置ubuntu14.04 cuda7.5 caffe cudnn
打开一个终端,依次运行下列命令:
cd
sudo -s
进入当前用户根目录,并切换到超级用户(符号由$变成#,不用每句都输sudo)
CUDA_REPO_PKG=cuda-repo-ubuntu1404_7.5-18_amd64.deb &&
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/$CUDA_REPO_PKG &&
sudo dpkg -i $CUDA_REPO_PKG
接着
ML_REPO_PKG=nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb &&
http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/$ML_REPO_PKG &&
sudo dpkg -i $ML_REPO_PKG
apt-get update
apt-get install digits
Ubuntu 14.04 安装配置CUDA http://www.linuxidc.com/Linux/2014-10/107501.htm
Ubuntu 12.04配置NVIDIA CUDA5.5实录 http://www.linuxidc.com/Linux/2014-10/107502.htm
Ubuntu安装Theano CUDA http://www.linuxidc.com/Linux/2014-10/107503.htm
关于Ubuntu 12.04 下 CUDA5.5 的安装请参看如下链接 Ubuntu 12.04 安装 CUDA-5.5
Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 ) http://www.linuxidc.com/Linux/2016-09/135016.htm