目录

Windows系统下安装步骤

安装CPU版本的tensorflow

安装GPU版本的tensorflow(使用GPU加速的tensorflow模型训练速度更快)

Ubuntu中的安装步骤

安装CPU版本的tensorflow

安装GPU版本的tensorflow


最完备教程,没有之一。让你知其然,且知其所以然。


Windows系统下安装步骤

安装CPU版本的tensorflow

(关于CPU、GPU、CUDA、cuDNN几个概念的介绍参考:https://blog.csdn.net/fangjin_kl/article/details/53906874)

1、安装anaconda

anaconda是一个开源的python发行版。其中集成了包括conda、python等180多个科学工具包。可以从官网下载安装:https://www.anaconda.com/download/

也可以从清华镜像网站下载(速度更快):https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

自定义安装选项时可以点选自动添加用户环境变量选项,如果没有选择安装过程中自动添加,则安装完成后需要手动配置系统环境变量(conda和python是必须要设置环境变量的。要在命令行中使用python,只需要将anaconda的安装目录添加到环境变量中,即 xxx\anaconda 。conda的可执行程序在anaconda安装目录下的\Scripts文件夹下,因此还需要将\Scripts目录添加到环境变量中,即 xxx\anaconda\Scripts。除此之外还有几个可选的环境变量,一般用不到,但是为了避免以后用到的时候出问题还是都配置了比较好:xxx\anaconda\Library\bin 、xxx\anacondaLibrary\usr\bin 、xxx\anaconda\Library\mingw-w64\bin。当然,安装时自动添加的话这些环境变量都会配置)。

配置完环境变量后打开一个新的 cmd 窗口,分别调用conda --version以及python --version,如果能够显示版本信息说明安装成功。

 在命令行中利用 conda list 命令可以查看已经安装的工具包。

2、下载 pip工具(anaconda自带pip,只需要按照第一步配置环境变量即可使用。所以这步可以省略,只不过自带的pip版本较低,想要使用最新版本的话可以按照以下步骤手动下载安装)

pip是Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载的功能。可以从以下网址下载:https://pypi.org/project/pip/#files

下载完成后解压缩,进入命令行并将工作目录切换到pip解压包所在路径。然后运行python setup.py install开始安装。这里可能会出现以下报错:ModuleNotFoundError: No module named 'setuptools' ,意思是缺少第三方模块setuptools。这个安装包可以从以下网址下载:https://pypi.org/project/setuptools/#windows-simplified

下载完成后解压缩,进入dos命令行并切换目录,运行python setup.py install进行安装。完成后再切换进入pip所在目录重新进行安装即可。最后不要忘了同样需要为其配置系统环境变量(注意利用python命令安装的工具都在\pkgs文件夹下python包中的\Scripts文件夹中)。然后在cmd中使用pip --version查看是否安装成功。

3、安装TensorFlow

(1)为了提高下载速度,使用清华的镜像(当然你也可以选择省略此步骤,但是后续在线安装tensorflow时有时候可能会报网络连接错误CondaHTTPError、ConnectionError):

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

(2)创建一个基于python3.6的conda计算环境(Windows下的tensorflow目前仅支持python3.5和3.6,且tensorflow 1.2以后的版本才支持python3.6),环境名称设置为tensorflow

conda create -n tensorflow python=3.6   

创建完成后可以打开 “开始——>Anaconda3——>Anaconda Navigator” ,点击左侧的 Environments,可以看到新创建的名称为tensorflow的环境。

(3)接下来启动 tensorflow 环境

activate tensorflow

启动完成后命令行提示符前面会增加所启动的环境名称,如下图:

 (4)安装tensorflow

pip install --upgrade --ignore-installed tensorflow  //如果不使用国内镜像,出现了网络报错可以多试几次

下图表示已成功安装

  4、测试

从开始菜单中找到Anaconda3文件夹

然后打开Anaconda Prompt(也可以直接在命令行窗口中进行测试),输入 activate tensorflow 切换到名为tensorflow的python环境,然后输入python打开python程序

输入以下测试代码:

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')  #初始化一个TensorFlow的常量
sess = tf.Session()  #启动一个会话
print(sess.run(hello))

打印出 b'Hello,TensorFlow!' ,表示tensorflow安装成功并可以正常使用。

但是如果我们使用Anaconda自带的Spyder和jupyter notebook中输入 import tensorflow as tf 的时候会失败,报错为:No module named 'tensorflow',原因是我们没有在名为tensorflow的环境下打开这些工具

解决方法为,在名为tensorflow 的环境下安装这几个工具(可以在图形界面中安装,也可以从命令行安装):

通过图形界面安装

打开 "Anaconda Navigator ——> Environment ——> tensorflow" 

可以看到 Spyder 等工具都没有安装,点击 installed 下拉列表,选择 non-installed,然后搜索 ipython、Spyder、jupyter等工具进行下载安装

通过命令行安装(使用包管理工具conda)

conda install spyder  //安装其他工具也是同样操作

安装完毕后会自动添加入开始菜单

然后重新进行测试,我们可以直接从开始菜单启动这些工具,也可以从命令行启动(以Spyder为例,步骤都一样):

打开命令行窗口,进入 tensorflow 环境,输入Spyder即可启动,然后输入测试代码,可以看到成功输出了打印信息。

安装GPU版本的tensorflow(使用GPU加速的tensorflow模型训练速度更快)

1、安装anaconda(同上)

2、确认GPU是否支持CUDA以及对应支持的版本(GPU硬件加速主要依赖于CUDA异构计算)

首先登录官网确认自己的显卡型号是否支持CUDA:https://developer.nvidia.com/cuda-gpus

(CUDA版本的选择依赖于GPU的驱动程序版本,如下表,参考官方文档:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

表一:CUDA 工具箱及GPU驱动的版本兼容性
CUDA Toolkit Linux x86_64 Driver Version Windows x86_64 Driver Version
CUDA 10.0.130 >= 410.48 >= 411.31
CUDA 9.2 (9.2.148 Update 1) >= 396.37 >= 398.26
CUDA 9.2 (9.2.88) >= 396.26 >= 397.44
CUDA 9.1 (9.1.85) >= 390.46 >= 391.29
CUDA 9.0 (9.0.76) >= 384.81 >= 385.54
CUDA 8.0 (8.0.61 GA2) >= 375.26 >= 376.51
CUDA 8.0 (8.0.44) >= 367.48 >= 369.30
CUDA 7.5 (7.5.16) >= 352.31 >= 353.66
CUDA 7.0 (7.0.28) >= 346.46 >= 347.62

如果GPU型号支持CUDA工具箱,打开NVIDIA控制面板查看当前安装的显卡驱动版本,并根据上表查看兼容的CUDA版本。也可以直接在控制面板中查看当前的显卡驱动兼容的CUDA最高版本

点击“系统信息”,红线部分即为GPU驱动版本信息

然后点击“组件”,横线部分即为GPU对应支持的CUDA最高版本。

3、安装CUDA

首先从官网下载低于上一步中确定的版本上限的CUDA工具箱安装文件(事实上,当我们选择安装高于当前可兼容的CUDA版本时也没有任何问题,因为安装完整版的CUDA时,只要显卡支持,驱动会自动升级至可兼容版本):https://developer.nvidia.com/cuda-toolkit-archive

这里选择 CUDA9.0 ,记得下载 local 版本(即完整版,network版为精简版),下载后直接双击安装即可,安装过程中环境变量会自动配置。为了减轻c盘空间压力,可以选择将安装目录更改为其他盘符。

安装完成后可以验证一下是否安装成功。打开命令行窗口,输入 nvcc -V ,输出CUDA版本信息即安装成功

当然也可以通过编译运行 CUDA Samples 来验证(参考:https://blog.csdn.net/m0_37638031/article/details/78896818),但是这个方法比较麻烦,还需要安装 Visual Studio IDE 。事实上如果我们不运行示例程序的话只需要安装对应版本的Visual C++ 编译器即可(这里推荐 vc++2015Redistributable)。可以在“控制面板——>卸载程序”中查看系统中是否已经安装了需要的库,如果没有,从官网下载安装即可:https://www.microsoft.com/en-us/download/details.aspx?id=48145 注意安装64位的。

可以在CUDA下载页面点击版本号右侧的 Onlie Decumentation ——> installation guides Windows 查看对应版本的CUDA支持的编译器IDE 版本。如下图:

表二:CUDA 9.2 支持的 Windows 编译器
Compiler IDE Native x86_64 Cross (x86_32 on x86_64)
Visual C++ 15.0 and 15.6 Visual Studio 2017 (RTW and Update 6) YES NO
Visual C++ 14.0 Visual Studio 2015 YES NO
Visual Studio Community 2015 YES NO
Visual C++ 12.0 Visual Studio 2013 YES YES
Visual C++ 11.0 Visual Studio 2012 YES YES
Visual C++ 10.0 DEPRECATED Visual Studio 2010 YES YES

4、确认cuDNN对应于CUDA的版本并下载配置(不需要安装)

cuDNN是用于深度神经网络的GPU加速库。它是配合CUDA使用的,因此也有版本之间的对应关系,可以从tensorflow官网查看 https://tensorflow.google.cn/install/source_windows 如下表:

表三:Windows下TensorFlow、CUDA和cuDNN之间的版本对应关系
Version Python version Compiler Build tools cuDNN CUDA
tensorflow_gpu-1.12.0 3.5-3.6 MSVC 2015 update 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.11.0 3.5-3.6 MSVC 2015 update 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.9.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.8.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.7.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.6.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.5.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.4.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.3.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.2.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 MSVC 2015 update 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 MSVC 2015 update 3 Cmake v3.6.3 5.1 8

然后从Nivdia官网下载对应版本的cuDNN:https://developer.nvidia.com/rdp/cudnn-archive

下载之前需要注册NVIDIA会员,按要求注册登录即可。下载完成后解压得到 “cuda” 文件夹,内容如下图:

将所有文件合并拷贝到CUDA的安装目录中即可。

5、创建一个用于安装tensorflow的conda计算环境

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes    //添加清华镜像
 
conda create -n tensorflow-gpu python=3.6   //环境名称为tensorflow-gpu,python版本选择3.6。
                                            //事实证明,可以创建同一python版本的多个不同名环境

6、安装tensorflow

如表三,tensorflow与CUDA以及cuDNN 之间有严格的版本对应关系,查表确定需要安装的tensorflow版本即可。

pip install --ignore-installed --upgrade tensorflow-gpu 
//默认安装最新版本的tensorflow,可以根据本地安装的CUDA版本指定对应的tensorflow的安装版本:pip install tensorflow-gpu==1.5.0

7、测试

激活tensorflow-gpu环境,打开python程序,输入以下测试代码:

import tensorflow as tf
sess = tf.Session()
a = tf.constant(10)
b = tf.constant(22)
print(sess.run(a + b))

其他工具下的测试举一反三即可。

 

可能出现的报错处理

"ImportError: DLL load failed: 找不到指定的模块、Failed to load the native TensorFlow runtime." 报错信息如下图:

这是因为安装的tensorflow的版本过高,和CUDA、cuDNN版本不匹配。解决方法是重新安装较低版本的tensorflow。

Ubuntu中的安装步骤

安装CPU版本的tensorflow

1、安装anaconda

同样需要先从官网 https://www.anaconda.com/download/ 下载安装包,然后在安装包目录下打开终端,并利用如下命令进行安装

bash Anaconda3-5.3.0-Linux-x86_64.sh  //Anaconda3-5.3.0-Linux-x86_64.sh为安装包名称,更换为你的即可

根据提示完成安装即可。

2、创建用于安装tensorflow的conda计算环境

打开一个新的终端,创建一个基于python3.6(Linux下tensorflow目前支持python2.7、3.3-3.6)的conda计算环境,环境名称设置为tensorflow

conda create -n tensorflow python=3.6

创建完成后,可以在终端中输入 anaconda-navigator 打开图形用户界面,然后在Environments选项卡中查看新创建的环境。

3、激活名为tensorflow的环境

source activate tensorflow  //也可以使用conda activate tensorflow

4、安装tensorflow

pip install --upgrade --ignore-installed tensorflow

安装成功后会自动进入tensorflow环境,我们可以直接启动python编辑器进行测试。

5、测试

测试过程同Windows。

 

安装GPU版本的tensorflow

有了上述Windows下安装的经验,这里就简单多了。我们知道了如何确认显卡型号、驱动版本,如何选择需要安装的CUDA、cuDNN乃至tensorflow等工具的版本。下面直接给出查询链接以及目前的版本匹配表:https://tensorflow.google.cn/install/source

表四:Linux下TensorFlow、CUDA和cuDNN之间的版本对应关系
Version Python version Compiler Build tools cuDNN CUDA
tensorflow_gpu-1.12.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.11.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.9.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.11.0 7 9
tensorflow_gpu-1.8.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.10.0 7 9
tensorflow_gpu-1.7.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.6.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.5.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.8.0 7 9
tensorflow_gpu-1.4.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.5.4 6 8
tensorflow_gpu-1.3.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.5 6 8
tensorflow_gpu-1.2.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8

笔者安装了Ubuntu的电脑显卡比较次,这里选择安装 CUDA8.0 以及 cuDNN6.0 以及 tensorflow_gpu-1.3.0 。

1、更新系统

sudo apt-get update

2、安装nvidia显卡驱动

打开 “系统设置——>软件和更新——>附加驱动”

然后按上图勾选,点击“应用更改”,安装完毕后点击“重新启动”

重启后利用如下命令查看是否安装成功:

lspci | grep -i NVIDIA

如果输出了你的显卡信息,表示驱动已经安装成功。

ldz@ldz-dell:~$ lspci | grep -i nvidia
0a:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 850M] (rev a2)

也可以在dash中搜索 nvidia ,如果搜索到了 NVIDIA X Server Settings 表示安装成功

有的时候可能会在驱动安装以后出现屏幕分辨率变小的问题,并且无法调整为适应屏幕的分辨率(被固定为 640x480),在"系统设置——>显示"界面中会显示 built-in display 字样,这是因为 nvidia 显卡配置时将我们的系统分辨率限制在了 640x480 。这时打开 “NVIDIA X Server Settings ——> X Server Display Configuration" 可以看到设置的分辨率,我们将其修改为自己的显示屏适配的分辨率即可。然后点击 “Save to X Configuration File”,重启之后就恢复正常了。(具体可以参考:https://blog.csdn.net/qq_31215157/article/details/74781880?locationNum=10&fps=1

3、安装anaconda(同上)

4、安装CUDA

下载

然后进入安装包所在目录,打开终端输入以下命令进行安装:

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update    //前面运行过,可以省去
sudo apt-get install cuda

安装完成后需要配置环境变量,打开 ~/.bashrc 文件,追加下面一行(根据官方教程):

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}   // usr/local目录下还有一个cuda-8.0文件夹的快捷方式,
                                                        叫做cuda,因此设置环境变量时可以利用cuda替代cuda-8.0

然后 source ~/.bashrc 刷新终端环境,或者打开新的终端输入 nvcc -V 验证是否安装成功。如果输出了CUDA的版本信息则说明已经成功安装。

5、下载配置cuDNN

下载

下载完成后解压缩,得到 cuda 文件夹,将文件夹中的所有文件合并拷贝到 CUDA 的安装目录,也就是 /usr/local/cuda-8.0(或者 /usr/local/cuda) 。由于权限问题,不能通过图形界面复制粘贴,只能利用终端命令:

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*

6、安装tensorflow

创建并激活用于安装tensorflow的conda计算环境

conda create -n tensorflow-gpu python=3.6
source activate tensorflow-gpu

安装tensorflow

pip install --upgrade --ignore-installed tensorflow==1.3.0

7、测试

输入以下测试代码

import tensorflow as tf
hello = tf.constant('Hello, Word!')
sess = tf.Session()
print(sess.run(hello))

输出 b'Hello, Word!' ,ok成功咯~