Ubuntu环境下深度学习cuda,cudnn,caffe,tensorflow的安装

参考文章http://blog.csdn.net/songrotek/article/details/50770154

使用ubuntu安装深度学习环境caffe和tensorflow过程中会遇到挺多麻烦事。写个文档总结下安装

安装cuda

这里我使用cuda7.5的deb进行安装。
之前我尝试过使用.run文件进行安装。但是常常安装完成之后重启出现一直在登陆界面的情况。网上有很多这方面的问题,但能真正解决办法的很难找到。因此这里采用.deb安装。需要注意的是,可以跳过单独安装Nvidia的显卡驱动而直接安装cuda,因为cuda里面自带了显卡驱动,会自动安装
Step 2.1 到Nvidia官网下载cud的deb安装文件
Step 2.2 关闭与Nvidia内核不兼容的nouveau

这里参考caffe安装教程:https://github.com/BVLC/caffe/wiki/Install-Caffe-on-EC2-from-scratch-(Ubuntu,-CUDA-7,-cuDNN)
打开Terminal终端(Ctrl+Alt+T)

sudo edit /etc/modprobe.d/blacklist-nouveau.conf

1

1

在文件中写入:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

1
2
3
4
5

1
2
3
4
5

在terminal中执行

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
sudo update-initramfs -u
sudo reboot

1
2
3

1
2
3

(貌似并没有执行conf文件,但关掉了nouveau,如果没有关掉nouveau,会导致安装cuda之后重启就进入不了系统,出现 ACPI PCC probe failed的错误)
重启开始安装cuda
Step 2.3 安装build-essential

sudo apt-get update
sudo apt-get install build-essential

1
2

1
2

Step 2.4 安装cuda

进入到cuda .deb安装位置

sudo dpkg -i cuda-repo-ubuntu1404_local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda

1
2
3

1
2
3

安装完毕之后,打开bashrc文件,将cuda路径写入:

gedit ~/.bashrc

1

1

在basic文件中写入:

export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=:/usr/local/cuda/lib64

1
2

1
2

Step 2.5 验证安装

cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery

1
2
3

1
2
3

运行测试代码,如果现在找到GPU则成功
Step 3 安装cudnn

这部分比较简单,首先要注册Nvidia的开发账号,然后才能下载cudnn。

下载下来后:

tar -zxf cudnn-7.0-linux-x64-v3.0-prod.tgz
cd cuda
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/

1
2
3
4

1
2
3
4

Step 4 更新一下系统

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install linux-source
sudo apt-get install linux-headers-uname -r

1
2
3

1
2
3

其中Linux-source在前面参考教程中有安装,因此也一并安装。

重启后仍然有ACPI PCC probe failed的错误,但不影响进入系统
Step 5 安装Caffe

sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml python-numpy

sudo easy_install pillow
sudo apt-get install pypy-dev

cd ~
git clone https://github.com/BVLC/caffe.git

cd caffe
cat python/requirements.txt | xargs -L 1 sudo pip install

cp Makefile.config.example Makefile.config
vi Makefile.config

去掉USE_CUDNN:=1注释

去掉WITH_PYTHON_LAYERS注释

make pycaffe -jX
make all -jX
make test -jX

export PYTHONPATH=/home/username/caffe/python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Step 6: 安装tensorflow

sudo apt-get install python-pip python-dev

Ubuntu/Linux 64-bit, GPU enabled:

sudo pip install –upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.7.1-cp27-none-linux_x86_64.whl

1
2
3
4

1
2
3
4

测试tensorflow:

$ python

import tensorflow as tf
hello = tf.constant(‘Hello, TensorFlow!’)
sess = tf.Session()
print(sess.run(hello))
Hello, TensorFlow!
a = tf.constant(10)
b = tf.constant(32)
print(sess.run(a + b))
42

安装完后,安装OpenBlas

参考文献 http://blog.csdn.net/xiaojun111111/article/details/59042673
http://www.cnblogs.com/llxrl/p/5292119.html

使用Caffe的模型做分类时,其运算大概是这样:把输入的图像当做矩阵,一直不停的和模型里面的卷积层kernel做卷积,然后推给pooling层做缩放,最后得到分类结果。最耗时的部分应该在于卷积的操作,Caffe把卷积这种操作转化成了矩阵相乘。而Caffe使用了BLAS的矩阵相乘接口。BLAS是一个数学函数接口标准,有很多个实现。按照Caffe官方ubuntu的安装文档默认安装的是ATLAS。这个版本的BLAS不能利用多核CPU,我们将其换为OpenBLAS,可以利用多核CPU并行计算,加快Caffe的分类速度。

git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS
make -j4 # 4核cpu
sudo make PREFIX=/usr/local/OpenBLAS install

修改Caffe的Makefile.config,将下面几行:

BLAS := 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

添加环境变量

在 /etc/profile 末尾加上 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/OpenBLAS/lib/ 然后 sudo source /etc/profile

注:直接安装在/usr/local 下应该就不需要添加环境变量

编译Caffe

make all
make test
make runtest

经过以上之后Caffe就算是编译成功了!

ps:会遇到make: Nothing to be done forall’`的错误。
那如何让make重新编译源文件呢?

有时候,因为系统的不同,导致运行库版本不同,则需要重新编译源文件。方法如下:

make clean  #清除上次make命令所产生的object文件(后缀为“.o”的文件)及可执行文件

ldconfig    #该命令通常在系统启动时运行,确保动态链接库为系统所共享。当用户安装了一个新的动态链接库时,则需手工运行该命令。)

make        #执行makefile文件)

可在环境变量中设置OpenBLAS所使用的CPU线程数

export OPENBLAS_NUM_THREADS=4

export PATH = /home/yukaihua/opt/nios2/bin : $PATH

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值