ubuntu16.04安装GPU版Tensorflow

之前写过关于windows下安装支持GPU的matconvnet以及tensorflow的博客,具体参照:
https://blog.csdn.net/edward_zcl/article/details/79827511
https://blog.csdn.net/edward_zcl/article/details/80170910
这次稍微记录下ubuntu下安装支持gpu版的tensorflow吧,毕竟我觉得还是挺简单的。。

系统:Ubuntu16.04

########################################## START#############################################
前提是你已经安装好了python3安装方式我就不介绍了,anaconda或者单独安装方式,然后软连接硬连接之类的。。
参考:https://blog.csdn.net/FHXTYBT/article/details/71122865
另外pip很重要,关于安装pip如下:

Install pip and virtualenv for Ubuntu 16.04LTS Maverick and newer,输入下面命令
$ sudo apt-get install python-pip python-dev build-essential 
$ sudo pip install --upgrade pip 
$ sudo pip install --upgrade virtualenv 
For older versions of Ubuntu
Install Easy Install
$ sudo apt-get install python-setuptools python-dev build-essential 
Install pip
$ sudo easy_install pip 
Install virtualenv
$ sudo pip install --upgrade virtualenv 
安装mysql 
apt-get install mysql-server

如果上面不好用,请用下面方法试试:

For Python 3

sudo apt-get install python3-pip
For Python 2

sudo apt-get install python-pip

其他情况就请百度复制粘贴,自行查找原因吧。。

注意:安装之前一定要先把CUDA和cuDNN的版本搞清楚了,因为CUDA与cuDNN的版本必须要和Tensorflow的版本对应上,否则即使安装成功,最后在python环境里导入tensorflow时也会报错。如下图所示,本文选择的版本是Tensorflow1.4,cuda8.0,cudnn6.0。

另外再附两个吧

tensorflow1.2+cuda8+cudnn5

tensorflow1.5+cuda9+cudnn6(不行的话试下cudnn7)

tensorflow1.5是一个坎,之后需要cuda9,cudnn6或者cudnn7。

一、安装NVIDIA驱动

前面写过,可以参考博客点击打开链接

一般来说gpu版的tensorflow都是需要c++编译器的,window下需要vs2015/vs2013的编译器,linux下是需要gcc/g++的,另外,一般tensorflow要求gcc编译器不能太老,还好,ubuntu这点比较人性化(centos就比较惨了。。),自带的gcc一般等级比较高,够用了。

二、安装CUDA

1.去官网点击打开链接下载CUDA,需要注册一个账号(上外网登陆下载比较快)

注意:下载runfile(local)文件

2. 下载完成以后,找到CUDA8.0所在位置(我的是放在home目录下),终端输入:.

            sudo chmod +x cuda_8.0.61_375.26_linux.run

              sudo ./cuda_8.0.61_375.26_linux.run

安装过程中会有几个选项需要确认:

注意:不要安装cuda自带的显卡驱动,其他的直接选y,路径输入默认值即可

千万千万不要安装cuda第一项,其自带的显卡驱动,否则你可以看看下面如何处理驱动的,看我看醉了。。

https://blog.csdn.net/davidhopper/article/details/81144914

3. 配置环境

安装完成以后,需要把cuda路径添加到当前用户的配置文件里:

     sudo gedit ~/.bashrc

将安装路径添加到文件末尾:

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

然后执行如下命令使路径生效:

       . ~/.bashrc

4. 验证

终端输入:

        nvcc -V

可以看到cuda的版本信息:

接着尝试运行一下cuda中自带的例子:


  
  
  1. cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
  2. sudo make
  3. ./deviceQuery

可以看到输出成功:

三、安装cuDNN

官网下载cuda对应版本的cudnn点击打开链接

注意:下载cuDNN v6.0 Library for Linux

下载完成以后将其解压到Cuda的目录当中,依次执行如下命令:

tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz
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*

四、安装 Tensorflow

Tensorflow的安装方式主要有两大类:

  • 一是直接利用官方或第三方编译好的release版本进行安装(推荐
  • 二是利用官方的源代码编译生成包后安装

       第一种方法最简单,其实就相当于官方帮我们把源代码进行编译得到安装包然后提供给我们直接安装,不需要我们自己再做这个事情。当然,如果你用官方编译后的包安装失败,或者你自己修改的源代码需要重新编译就可以采用第二种方法。此外,还可以根据个人情况选择安装cpu版本和gpu版本,二者的区别不大,主要区别在选择的编译包不同、gpu版本需要安装好cuda和cudnn。

下面我分别介绍这两种方法:

1. release版本安装

直接利用官方发布的release版本进行安装的话,主要有两种安装方法:pip安装和anaconda安装两种,这里只介绍pip安装方法

依赖环境:python

这里我用的是python2.7,所以就以此为例。

(1). 安装pip:

pip及对应版本的python安装可以参考此篇博客点击打开链接


  
  
  1. sudo apt-get install python-pip python-dev # for Python 2.7
  2. sudo apt-get install python3-pip python3-dev # for Python 3.n

(2). 利用pip安装Tensorflow:

pip install tensorflow-gpu ==1.4.0       (注意tensorflow的版本

安装成功后按照后面的测试方法测试一下

注:如果安装失败,就直接从官方库里下载release包(.whl文件)进行安装。先从下面选择自己对应的系统与环境:

之后再利用pip进行安装:# Python 2$ sudo pip install --upgrade $TF_BINARY_URL# Python 3$ sudo pip3 install --upgrade $TF_BINARY_URL上面编译好的二进制安装包可以在官网tensorflow的Download and Setup页面查看

2. 利用源码编译安装

利用源码编译安装相比与前面的方法就是多了一个源码编译的过程。tensorflow的编译需要用到谷歌官方的一个工具bazel。

(1)安装Bazel

按照官方教程安装即可点击打开链接

a. 安装JDK8

添加PPA源

sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install openjdk-8-jdk

安装完成后键入

           java -version

若看到Java版本信息则表明JDK安装成功

b. 安装依赖包

sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python3

c. 安装Bazel

首先下载Bazel安装包点击打开链接

由于前面我们已经安装了JDK8,所以这里选择bazel-<version>-without-jdk-installer-linux-x86_64.sh

我下载的版本是 bazel-0.13.0-without-jdk-installer-linux-x86_64.sh 如下图所示:

然后赋予其可执行权限,运行:

sudo chmod +x bazel-0.13.0-without-jdk-installer-linux-x86_64.sh./bazel-0.13.0-without-jdk-installer-linux-x86_64.sh --user

最后添加其路径

  export PATH="$PATH:$HOME/bin"

官网说也可以添加到~/.bashrc 文件中

(2)安装Tensorflow

a. 安装一些依赖项(我使用的是python2.7,所以以python2为例)

sudo apt-get install python2-pip python2-dev

sudo apt install python2-numpy swig python2-dev python2-wheel

b. 下载Tensorflow

可以从官方Github上把最新的源码clone下来(嫌克隆慢的也可以直接去官网下载点击打开链接):

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

下载好后解压,进入tensorflow目录,输入:

          ./configure

配置安装信息:

注意以下几点:

1.python的安装目录

2.除了CUDA以外,其他平台都选n

3.CUDA和cuDNN的版本不要选错了

4.GCC编译器选n

配置完成后会看到最后出现

          Configuration finished

c. 通过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

cd ///tmp/tensorflow_pkg

ls 

通过ls命令确认安装包名字,然后再通过pip安装,<version>和安装环境有关

sudo pip install /temp/tensorflow_pkg/tensorflow-<version>-none-any.whl

此处再推荐一个例子: https://blog.csdn.net/jiang_z_q/article/details/73264561

五. 测试

1. 进入python,键入以下代码

import tensorflow as tf

hello = tf.constant('Hello Tensorflow')

sess = tf.Session()

print(sess.run(hello))

如下图所示,则表明Tensorflow安装成功

注:红框里的两行代码参见博客点击打开链接

2. 查看tensorflow版本

在python环境中输入:

import tensorflow as tf

tf.__version__     (查看版本)

tf.__path__        (查看路径)

3. 测试运算

输入一个运算程序,如下图所示,能运用gpu顺利运算,还能显示gpu型号:

六. 卸载方法

    sudo pip uninstall tensorflow # for Python 2.7    sudo pip3 uninstall tensorflow # for Python 3.n

七.ubuntu 实时查看显存使用情况

    watch -n 10 nvidia-smi #每10s 更新一次
    kill pid(数字) #杀死指定进程

至此,大功告成!

###################################### END ##########################################
以上主体参考自:https://blog.csdn.net/u014797226/article/details/80229887 ,略作修改与补充。

参考链接:

http://www.tensorfly.cn/tfdoc/get_started/os_setup.html

https://blog.csdn.net/briliantly/article/details/79566013

https://www.jianshu.com/p/4b0992253626

https://www.cnblogs.com/softzrp/p/7823330.html

猜你喜欢

转载自blog.csdn.net/edward_zcl/article/details/88636903