博客原文链接:https://blog.csdn.net/u014797226/article/details/80229887
花了一天时间装了个tensorflow,写个教程供网友参考也防止自己忘了
先说一下环境配置:
系统:Ubuntu16.04
GPU: Titan X
注意:安装之前一定要先把CUDA和cuDNN的版本搞清楚了,因为CUDA与cuDNN的版本必须要和Tensorflow的版本对应上,否则即使安装成功,最后在python环境里导入tensorflow时也会报错。如下图所示,本文选择的版本是Tensorflow1.4,cuda8.0,cudnn6.0。
一、安装NVIDIA驱动
前面写过,可以参考博客点击打开链接
二、安装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,路径输入默认值即可
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中自带的例子:
-
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
-
sudo make
-
./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安装可以参考此篇博客点击打开链接
sudo apt-get install python-pip python-dev # for Python 2.7 sudo apt-get install python3-pip python3-dev # for Python 3.n
(2). 利用pip安装Tensorflow:
sudo pip install tensorflow-gpu 1.4.0 (注意tensorflow的版本)
安装成功后按照后面的测试方法测试一下
注:如果安装失败,如果上一步失败,就直接从官方库里下载release包(.whl文件)进行安装。不过需要先从下面选择自己对应的系统与环境:
下载好安装包以后,直接安装即可:
安装命令:sudo pip3 install tf_nightly-1.head-cp36-cp36m-linux_x86_64.whl (此文件就是下载好的安装包名称)
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
五. 测试
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
至此,大功告成!
参考链接:
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