ubuntu16.04 64位安装tensorflow+cuda8.0+cudnn7.0

一.为什么要安装tensorflow??
随着深度学习技术快速发展,各种深度学习框架不断完善,为学习深度学习,编写深度学习代码带来了极大的方便。深度学习包括tensorflow,caffe,mxnet等都是比较成熟的深度学习框架,根据统计tensorflow使用人群在所有深度学习框架中人数是最高的,使用tensorflow开发深度学习代码十分方便。

二.安装tensorflow-gpu
机子配置为:
显卡:GTX1070, 8G显存
系统:ubuntu16.04 64位

1.安装显卡驱动
安装nvidia显卡驱动请参考链接:http://blog.csdn.net/nnuyi/article/details/78067544

2.安装cuda8.0
(1)下载cuda8.0
下载链接:https://developer.nvidia.com/cuda-downloads

(2)安装cuda8.0

# 1.Install kernel headers and development packages for the currently running kernel
$ sudo apt-get install linux-headers-$(uname -r)
# 2.Install repository meta-data
$ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
# 3.Update the Apt repository cache
$ sudo apt-get update
# 4.Install CUDA
$ sudo apt-get install cuda

(3)配置环境变量
打开终端,输入:

$ sudo gedit ~/.bashrc

在文件中写入如下环境变量:

export CUDA_HOME=/usr/local/cuda-8.0
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:~/cuDNN_installpath"

然后在终端中执行如下命令:

$source ~/.bashrc

(4)测试安装结果
在终端中执行下列命令:

$ nvcc --version

如果正确显示那么说明你的cuda8.0安装成功了!!!

3.下载cudnn7.0
下载链接:https://developer.nvidia.com/rdp/cudnn-download,如果是第一次使用的需要注册然后填写问卷之后才可以下载哦!
安装命令如下所示:

扫描二维码关注公众号,回复: 2174707 查看本文章
# 1.Navigate to your <installpath> directory containing cuDNN.
# 2.Unzip the cuDNN package.
$ tar -xzvf cudnn-9.0-linux-x64-v7.tgz
# 3.Copy the following files into the CUDA Toolkit directory.
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

到这边,你的cuda环境就安装好了!!!读者在安装过程可能会遇到各种各样的问题:
(1)\boot空间不足,执行

$ sudo apt autoremove

(2)吧啦吧啦吧啦一大堆啦,自己网上搜一搜就可以解决啦!!!当然没问题最好啦

PS:cuda是一个计算框架,只有搭建好cuda,安装tensorflow或者其他的深度学习框架才能利用GPU进行加速计算。

4.安装 BaZel
(1)安装bazel

# 1. Install JDK 8
$ sudo apt-get install openjdk-8-jdk
# 2. Add Bazel distribution URI as a package source (one time setup)
$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
$ curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
# 3.Install and update Bazel
$ sudo apt-get update && sudo apt-get install bazel
# Once installed, you can upgrade to a newer version of Bazel with:
$ sudo apt-get upgrade bazel

5.安装tensorflow
(1)安装python依赖
安装python依赖根据python的版本选择安装,博主强烈建议先创建一个python虚拟环境,在这个虚拟环境中安装管理python各种包十分方便又干净!!!
安装python虚拟环境可以参考博主的另一篇博文:http://blog.csdn.net/nnuyi/article/details/77996236

<1>安装了python虚拟环境的tensorflow安装
python2.7

# 激活虚拟环境
$ workon cv2
(cv2)$  # Your prompt should change

# 安装依赖
$ sudo apt-get install python-numpy python-dev python-pip python-wheel
$ sudo apt-get install libcupti-dev

# Ubuntu/Linux 64-bit, CPU only:
$ pip install --upgrade tensorflow-cpu

# Ubuntu/Linux 64-bit, GPU enabled:
$ pip install --upgrade tensorflow-gpu

python3.4

$ workon cv3
(cv3)$  # Your prompt should change

# 安装依赖,在cv3环境下python默认就是python3
$ sudo apt-get install python-numpy python-dev python-pip python-wheel
$ sudo apt-get install libcupti-dev

# Ubuntu/Linux 64-bit, CPU only:
$ pip install --upgrade tensorflow-cpu

# Ubuntu/Linux 64-bit, GPU enabled:
$ pip install --upgrade tensorflow-gpu

由于默认安装tensorflow是1.0版本,而且使用的cudnn是6.0,而博主安装的cudnn7.0的,所以必须建立一个软链接,将cudnn6.0链接到cudnn7.0中去:

#进入cuda安装目录
$ cd /usr/local/cuda/lib64
#建立软链接
$ sudo ln -s libcudnn.so.7 libcudnn.so.6

<2>无虚拟环境tensorflow安装
以python2.7为例子:
安装python依赖

$ sudo apt-get install python-numpy python-dev python-pip python-wheel
$ sudo apt-get install libcupti-dev

下载tensorflow包

$ git clone https://github.com/tensorflow/tensorflow

配置安装

Please specify the location of python. [Default is /usr/bin/python]:

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]:

Do you wish to use jemalloc as the malloc implementation? [Y/n]
jemalloc enabled

Do you wish to build TensorFlow with Google Cloud Platform support? [y/N]
No Google Cloud Platform support will be enabled for TensorFlow

Do you wish to build TensorFlow with Hadoop File System support? [y/N]
No Hadoop File System support will be enabled for TensorFlow

Do you wish to build TensorFlow with the XLA just-in-time compiler (experimental)? [y/N]
No XLA JIT support will be enabled for TensorFlow

Found possible Python library paths:
  /usr/local/lib/python2.7/dist-packages
  /usr/lib/python2.7/dist-packages
Please input the desired Python library path to use. Default is [/usr/local/lib/python2.7/dist-packages]
Using python library path: /usr/local/lib/python2.7/dist-packages

Do you wish to build TensorFlow with OpenCL support? [y/N] N
No OpenCL support will be enabled for TensorFlow

Do you wish to build TensorFlow with CUDA support? [y/N] Y
CUDA support will be enabled for TensorFlow

Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:

Please specify the Cuda SDK version you want to use, e.g. 7.0. [Leave empty to use system default]: 8.0

Please specify the location where CUDA 8.0 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:

Please specify the cuDNN version you want to use. [Leave empty to use system default]: 7

Please specify the location where cuDNN 7 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:

Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.

Please note that each additional compute capability significantly increases your build time and binary size.
[Default is: "3.5,5.2"]: 6.1

创建pip包

$ bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

pip安装

#根据自己的tensorflow的版本安装whl
$ sudo pip install /tmp/tensorflow_pkg/tensorflow-1.x.x-xxx....whl

PS:这个安装过程有点久哇,不如来杯咖啡更配!!!

6.tensorflow测试
进入python环境

$ python

编写tensorflow代码

>>import tensorflow as tf
>>str = tf.constant("hello tensorflow world!")
>>sess = tf.Session()
>>print(sess.run(str))

正常输出结果表明你成功啦!!!
恭喜你,毕业了!!!

参考文献:
(1)http://blog.csdn.net/qq_33728573/article/details/78061460
(2)http://www.cnblogs.com/wangduo/p/7383989.html
(3)http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html
(4)http://www.cnblogs.com/simplelovecs/p/5149982.html

猜你喜欢

转载自blog.csdn.net/nnuyi/article/details/78071836
今日推荐