TensorFlow
前,最好按照上述目录这个顺序来操作,即安装 Anaconda
,创建虚拟环境,安装 CUDA
,安装 cuDNN
,安装 TensorFlow
,五步走。本文教程主要适合用 gpu
跑深度学习的同学,用 cpu
跑深度学习的同学可移步至其他文章。
首先,什么是TensorFlow
?TensorFlow是一种深度学习框架,这个框架里有很多已经写好的模块(包)可以让用户来调用,实现不同的操作。或者说,TensorFlow是一个工具。
TensorFlow
有不同的版本,不同版本的TensorFlow
对编译器(即Python
的版本)和驱动要求不一样。
先搞清楚一个事情,你是用
CPU
跑深度学习还是GPU
跑深度学习。
如果你用cpu
跑深度学习,只需要考虑Python
版本。
如果你用gpu
跑深度学习,则需要考虑Python
版本、CUDA
版本、cuDNN
版本。
(这里简单提一嘴,CUDA是显卡厂商NVIDIA
推出的运算平台,cuDNN是NVIDIA
的一个用于深度神经网络的GPU加速库。反正就是如果你要用NVIDIA
显卡跑深度学习的话,需要下载CUDA
和cuDNN
驱动)
目前,TensorFlow
的cpu
版本除了1.0.0
和1.1.0
要求python
的版本是3.5
,其他版本从1.2.0
一直到2.6.0
,都能兼容python3.6
。所以我们一般python使用3.6
这个最经典兼容性最好的版本,具体的tensorflow==x.x.x
各版本对Python
的要求,大家可以自行去TensorFlow中文官网查看。TensorFlow中文官网:https://tensorflow.google.cn/install/source_windows?hl=zh-cn
tensorflow-gpu==2.x.x
各版本对于cuDNN
和CUDA
的要求
版本 | Python 版本 | 编译器 | 构建工具 | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.6.0 | 3.6-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.5.0 | 3.6-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.4.0 | 3.6-3.8 | MSVC 2019 | Bazel 3.1.0 | 8.0 | 11.0 |
tensorflow_gpu-2.3.0 | 3.5-3.8 | MSVC 2019 | Bazel 3.1.0 | 7.6 | 10.1 |
tensorflow_gpu-2.2.0 | 3.5-3.8 | MSVC 2019 | Bazel 2.0.0 | 7.6 | 10.1 |
tensorflow_gpu-2.1.0 | 3.5-3.7 | MSVC 2019 | Bazel 0.27.1-0.29.1 | 7.6 | 10.1 |
tensorflow_gpu-2.0.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow-gpu==1.x.x
各版本对于cuDNN
和CUDA
的要求
版本 | Python 版本 | 编译器 | 构建工具 | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-1.15.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.14.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.24.1-0.25.2 | 7.4 | 10 |
tensorflow_gpu-1.13.0 | 3.5-3.7 | MSVC 2019 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | MSVC 2015 update 3 | Bazel 0.15.0 | 7.2 | 9.0 |
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 |
不是说安装TensorFlow
吗?Anaconda
是个什么东西?官方给的解释是Anaconda
是一个开源的Python
发行版本。我们不管它是个啥,我们要用的是它里面的一个工具叫Conda
,Conda
是一个辅助进行包管理和环境管理的工具,我们需要用它来创建Conda虚拟环境。
这里先说一个事情。首先,不同的深度学习项目对于深度学习环境的要求不同。我们在搞深度学习研究的时候,肯定不能所有的项目都只用一个深度学习环境。就好比你不能在厕所吃饭,不能在卧室撒尿一样。
我们需要创建几个虚拟环境,就像建几个房子或场所一样,便于我们在不同的地点,做不同的深度学习项目。
—————————————————————————————————
先来理解一下什么是虚拟环境?
我举个例子,假如说你现在有三个深度学习项目,分别是吃饭、睡觉、学习。你吃饭要去食堂,睡觉要在宿舍,学习要去图书馆。其中食堂、宿舍和图书馆就可以理解为三个虚拟环境。
食堂里的食物、餐具等;宿舍里的床、被子等;图书馆里的桌子、书等;这些都是虚拟环境中的模块(库或包,像python
、tensorflow
)。
对于不同的深度学习项目,我们要给他配合适的虚拟环境,让它在这个环境中运行代码。
我们说的**tensorflow
版本不匹配,报错**就好比我的深度学习项目是吃饭,你给我配了一个图书馆的环境,里面是桌子和书,我肯定执行不了。
举了一个不是特别恰当的例子来帮助大家理解虚拟环境,希望有助于大家理解创建虚拟环境的重要性。
如下表所示,是三个虚拟环境以及它们里面的部分具体包的展示。
虚拟环境名字 | 包 |
---|---|
tf2.6 | python3.9、tensorflow-gpu2.6.0等 |
tf2.0 | python3.6、tensorflow-gpu2.0.0、pip21.2.4等 |
tf1.1 | python3.7、tensorflow1.1.15等 |
—————————————————————————————————
建议大家从清华大学开源软件站下载Anaconda
。
清华大学开源软件站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
32位操作系统下载Anaconda3-20xx.xx-Windows-x86.exe
64位操作系统下载Anaconda3-20xx.xx-Windows-x86_64.exe
注意,有人反馈用最新的Anaconda创建虚拟环境和安装包时,可能会报奇怪的错误。建议大家在下载的时候不要下载最新的Anaconda,下载稍微旧一点的。
在命令提示符中输入control system
,弹出设置界面。
依次单击高级系统设置-环境变量-Path-编辑
。
然后单击新建-浏览
,将下面四个路径添加到环境变量。
D:\Software\Anaconda3
D:\Software\Anaconda3\Scripts\
D:\Software\Anaconda3\Library\bin
D:\Software\Anaconda3\Library\mingw-w64\bin
这里注意一下
Anaconda3
的路径,每个人安装Anaconda3的路径可能不同,添加你自己Anaconda3
的路径,别无脑复制!
指定Conda
库的安装源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
查看Conda
库的安装源
conda config --show channels
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
查看pip库的安装源
pip config list
虚拟环境的操作都在命令提示符中执行。
在安装Tensorflow
之前,我们先来搞清楚如何创建一个虚拟环境。
创建虚拟环境
conda create -n 环境名 python=X.X
activate 环境名
盘符C:
前面的(Mytensorflow2.0)
表示我们当前已经进入这个虚拟环境中。
退出虚拟环境
conda deactivate
conda remove -n 环境名 --all
安装指定包
conda install -n 环境名 包名
删除指定包
conda remove --name 环境名 包名
CUDA:NVIDIA的运算平台。
由于CUDA
的不同版本对显卡驱动的版本是有要求的,所以我们需要先了解显卡驱动信息以及不同版本的CUDA
对显卡驱动的最低要求。
CUDA
版本对显卡驱动的最低要求:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html,不满足要求的先去更新显卡驱动。
NVIDIA
驱动程序下载:https://www.nvidia.cn/Download/index.aspx?lang=cn
下载CUDA
的时候,注意安装类型选exe(local)
。
下载完成后,打开下载的CUDA
,选择解压路径。
只勾选CUDA
即可,单击下一步
,之后的步骤都是单击下一步
,直至完成安装。
将下面的两个路径添加到环境变量中的系统变量的Path中,具体添加方法参照本文1.3部分的内容,此处不再赘述。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\libnvvp
在命令提示符中执行如下命令即可看到CUDA
的版本。
nvcc --version
下载并解压cuDNN
,得到如下图的三个文件夹和一个.txt
文件。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
供大家参考,直接粘贴到这个v10.0
的文件夹就行。
进入如下目录,找到cudnn.h
文件并打开。(如果找不到cudnn.h
文件,可以找cudnn_version.h
)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include
完成了以上的所有工作后,安装TensorFlow
就似乎很容易了。
具体操作可参考第2部分的内容,此处不再赘述。接下来我用自己前面创建好的虚拟环境Mytensorflow2.0
来演示。
CPU版本的tensorflow
pip install tensorflow==x.x.x -i https://pypi.tuna.tsinghua.edu.cn/simple
GPU版本的tensorflow
pip install tensorflow-gpu==x.x.x -i https://pypi.tuna.tsinghua.edu.cn/simple
注意,这里
-i https://pypi.tuna.tsinghua.edu.cn/simple
的意思是:指定库的安装源,即指定从清华大学开源软件镜像站下载tensorflow。因为从tensorflow官网(www.tensorflow.org)下载速度很慢,这里不再作过多的赘述。如果你在本文1.4中已经修改过库的安装源,则无需再指定库的安装源-i https://pypi.tuna.tsinghua.edu.cn/simple
。
首先,进入虚拟环境Mytensorflow2.0
。
我目前这台机器的CUDA是10.0
,cuDNN是7.4.1
,这个虚拟环境的Python是3.6
,通过版本匹配,我知道能下载的tensorflow的版本是1.13.0、1.14.0、1.15.0和2.0.0
。
pip install tensorflow-gpu==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
进入python
,当左边显示>>>
这个符号是,表示我们已经运行了python
编译器。然后,我们用两行代码查看TensorFlow版本:
import tensorflow
print(tensorflow.__version__)
由于本文写作较为仓促,用了两三天时间系统整理了一下搭建TensorFlow
深度学习环境的过程。如有错误之处,欢迎大家批评指正。也欢迎各位同仁在评论区提出意见,多多交流,感谢各位!