您的位置:首页 > Web前端

Caffe & Theano安装教程——ubuntu16.04系统

2016-07-20 14:33 681 查看
因为学习要用到深度学习,因此要配置caffe和theano。记过几日几夜的不懈奋战,最终找到了一种极为简单的安装方法。为将来要用到深度学习的同学节省时间,写下这个博客。由于博主是第一次写博客,若有错误还请大家海涵!

QQ:75690183
email:75690183@qq.com

本教程最大的特点是CUDA和cuDNN的安装简单,这也得益于这个系统版本的更新!

(一)系统安装

先从官网上下载ubuntu16.04系统镜像,再从这里下载Universal-USB-Installer-1.9.6.5软件,最后找一个U盘。准备开始!

(1)制作启动盘

第一个框选择系统——ubuntu;

第二个框选择一下载好的ubuntu16.04系统镜像文件(以.iso结尾);

第三个框选择事先准备好的U盘。

之后点creat,等待….再点close,结束!

(2)安装系统

将我们制作的启动盘插入电脑,选择U盘启动,进入安装系统(作为程序员,这些不应该不会,如果不会自行百度)。等待大约5秒,自动进入ubuntu系统安装界面,之后的不再详述。

(二)安装caffe

由于兼容性问题,下面先安装caffe。在第二节中已经说明了如何安装系统,因此这时我们已经有ubuntu系统,并且已经进入系统!本节对下面没有关联性,不用的同学可跳过此节。

1、先安装各种依赖库,打开终端,依次输入如下命令:

sudo  apt-get  update
sudo  apt-get  upgrade
sudo  apt-get  install  -y  build-essential  cmake  git  pkg-config
sudo  apt-get  install  -y  libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo  apt-get  install  -y  libatlas-base-dev
sudo  apt-get  install  -y  --no-install-recommends  libboost-all-dev
sudo  apt-get  install  -y  libgflags-dev  libgoogle-glog-dev  liblmdb-dev
sudo  apt-get  install  -y  python-pip
sudo  apt-get  install  -y  python-dev
sudo  apt-get  install  -y  python-numpy python-scipy
sudo  apt-get  install  -y  libopencv-dev
sudo  pip  install  protobuf


2、下载caffe源码
git  clone  https://github.com/BVLC/caffe.git[/code] 
3、配置Makefile.config文件

cd到caffe目录下
cp Makefile.config.example Makefile.config
gedit Makefile.config


4、注意下面的操作很重要

在Makefile.config中找到下面的内容:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

然后替换为:

INCLUDE_DIRS :=  $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

将:
PYTHON_LIB := /usr/lib
替换为:

PYTHON_LIB := /usr/lib/python2.7/config-x86_64-linux-gnu


(不确定这一步是否有用,但是在/usr/lib下没有libpythonX.X.so文件)

5、配置Makefile文件(注意:它和Makefile.config不是一个文件)

sudo  gedit  Makefile

输入密码,开始编辑。查找NVCCFLAGS,将下面的东西

NVCCFLAGS  +=  -ccbin=(CXX)−Xcompiler−fPIC(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=(CXX)−Xcompiler−fPIC(COMMON_FLAGS)

修改它的目的是为了防止报错: “string.h ‘memcy’ was not declaredin this scope ”。

6、创建hdf5新的连接

执行一下命令:

find -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;


再输入:
cd  /usr/lib/x86_64-linux-gnu

接着,执行以下命令:
sudo  ln  -s  libhdf5_serial.so.10.1.0  libhdf5.so
sudo  ln  -s  libhdf5_serial_hl.so.10.0.2  libhdf5_hl.so

这里会提示,文件已存在,没关系,继续。

7、检验

cd到caffe/python目录下


输入一下命令:

for  req  in  $(cat  requirements.txt);  do  pip  install  $req;  done

终端可能会有很多红字,那么在运行下一句:

for  req  in  $(cat  requirements.txt);  do  sudo  -H  pip  install $req --upgrade;  done

8、编译
到这里,我们的准备工作就都完成了,下面开始编译,运行这几行代码:

cd到caffe目录下
make  all  -j8 # j8指计算机的核心数,如8核
make  test  -j8
make  runtest  -j8


如果有错,按照上面的步骤重做一次。先暂时不编译python接口,先给python添加环境变量,打开.bashrc文件:

cd ~
sudo  gedit  ~/.bashrc


输入密码后,进入编辑界面。在最后一行加上:
export PYTHONPATH =/home/xxx /caffe/ python:$PYTHONPATH
注意,路径写自己的。现在编译python接口,输入以下命令:

cd到caffe目录下
make  pycaffe
make  distribute


这一步做完就算大功告成了,输入:python,再输入:import caffe,如果没有报错,说明安装成功。

[b](三)安装theano


在上一节中不管caffe是否安装成功,对于theano的安装没有影响。如果不只用theano的同学可以跳过此节。下面开始安装Theano:

1、安装各种包

#先update下

sudo  apt-get  update


# 安装gfortran,后面编译过程中会用到

sudo apt-get install gfortran


# 安装blas,Ubuntu下对应的是libopenblas,其它操作系统可能需要安装其它版本的blas——这是个OS相关的
sudo apt-get install libopenblas-dev

# 安装lapack,Ubuntu下对应的是liblapack-dev,和OS相关。

sudo apt-get install liblapack-dev


# 安装atlas,Ubuntu下对应的是libatlas-base-dev,和OS相关。

sudo apt-get install libatlas-base-dev


# 使用pip安装numpy和scipy

sudo apt-get install python-pip


# 安装numpy

sudo pip install numpy


# 测试numpy, 测试通过才能进行下一步~~

python -c "import numpy; numpy.test()"


# 安装scipy

sudo pip install scipy


# 测试scipy
# 测试通过才能进行下一步~~

python -c"import scipy; scipy.test()"
以上顺序不可打乱,否则会报错!

为了安装Theano,最后还需要安装一些库,可以参考官方教程:

sudo apt-get install python-dev
sudo apt-get install python-pip
sudo apt-get install python-nose
sudo apt-get install g++
sudo apt-get install git


2、安装Theano

用pip安装

sudo pip install Theano



# 测试Theano

python -c "import theano; theano.test()"


这里theano.test()报错很正常,我的是errors=80!没关系,不用管它,接着安装cuda。

(四)安装cuda

ubuntu16.04之前的版本作者没有装过,但是看到教程就头大!对于16.04这个版本来说却十分简单(没有sample,也无需添加环境变量)!在这里介绍安装cuda是于大部分教程不同,这是考虑了兼容性问题所做的决定。主要原因在于,caffe的编译需要gcc,g++为5.0以上版本,但是cuda不支持gcc,g++5.0以上版本。但只要caffe编译成功后,它对gcc,g++就没有要求。

1、安装显卡驱动
方法一:在‘Search your computer’中搜索‘Additional Drivers’,打开。选择‘Additional Drivers’选项卡下,选择‘Using NVIDIA binarydriver -…..’,单击‘Apply Changes’,等待完成。重启!

方法二:查看该机的nvidia驱动(如果不是nvidia的显卡,别费劲了)。输入命令:

ubuntu-drivers devices


安装对应的版本驱动(如:我的是nvidia-361)。输入命令:

sudo apt-get install nvidia-361

重启!

2、安装cuda
输入命令:

sudo apt-get install nvidia-cuda-toolkit
重启!虽然已经安装好了cuda,但还不能用。因为cuda不支持gcc5.0及以上版本,因此gcc需要降级。输入以下命令:

sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9  20
sudo update-alternatives --install /usr/bin/gcc  gcc /usr/bin/gcc-5  10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9  20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5  10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++


这些东西做完以后,我们的cuda也就安装完毕了!

(五)安装cuDNN

在nvidia官网下载cudnn(需要注册)。
1、将安装包放在‘/home’路径下。输入命令:

tar xvzf cudnn-7.5-linux-x64-v5.0-ga.tgz
sudo cp include/cudnn.h /usr/include
sudo cp lib64/libcudnn* /usr/lib/x86_64-linux-gnu/
sudo chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn*


(六)为theano写配置文件

在终端输入命令:

sudo vim ~/.theanorc


输入‘i’进入insert模式。输入一下内容:

[global]
openmp=False
device=gpu
floatX=float32
allow_input-downcast=True
[blas]
ldflags=
[nvcc]
flags=-D_FORCE_INLINES


输入完毕,按‘Esc’退出,输入‘:’,再输入‘wq’,回车。配置完成!这时可以输入命令:

python  –c ‘import theano’


显示’Using gpu device 0:GeForce GTX 960’,说明显卡配置成功,否则重来一遍!

[b]参考[/b] http://blog.csdn.net/autocyz/article/details/51783857 http://blog.csdn.net/g0m3e/article/details/51420565 http://www.myexception.cn/cuda/2017261.html http://www.bubuko.com/infodetail-902302.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: