要使用TensorFlow,建议先安装Anaconda,配置对应的虚拟环境。
首先去Anaconda的官网下载安装包,下载地址为: https://www.anaconda.com/products/distribution
anaconda支持最新版本为Python 3.9,其实可以不用安装Python 3.9,因为都是支持之前版本的Python。
注意:个人电脑,在安装过程运行到Install for时,建议选择All Users。非个人电脑,选择Just Me这个选项,选另一项的话需要管理员权限。
之后一路Next即可。
首先检查自己的系统硬件,确定电脑GPU所能支持的CUDA版本,对应去下载Python以及TensorFlow。
可以看到,我的NVIDIA CUDA版本显示为11.7,然而我实际安装的CUDA版本为11.3。这是因为我前期安装11.7版本的CUDA之后出了一些问题,因此卸载重新安装CUDA11.3,此处不赘述。
前往TensorFlow的官网 :
https://tensorflow.google.cn/
在install栏目中选择Windows,也可以直接前往链接:
https://tensorflow.google.cn/install/source_windows
由于有些资料还未翻译成中文,建议语言选择English。
下滑,拉到 经过测试的构建配置 标题下(英文为Tested build configurations),查看TensorFlow版本,Python版本,cuDNN版本以及CUDA版本的对应表格。
我打算安装的TensorFlow为2.7,因此Python也选择3.7,对应的cuDNN选择8.1,CUDA需要大于等于11.2。
前往NVIDIA安装CUDA,网址为 CUDA Toolkit Archive ,可以直接选择上文对应的11.2安装。
在安装Anaconda之后,Windows启动栏会添加Anaconda3 (64-bit)程序组,右键“以管理员身份打开”点击Anaconda Prompt(Anaconda3),后续操作都在Anaconda Prompt中进行。
打开Anaconda Prompt时,环境为默认的base环境,建议先创建一个针对TensorFlow的虚拟环境,之后安装对应的Python,cudatoolkit以及cuDNN。
在安装TensorFlow时,有两种方式,一种是直接在命令行输入安装命令,此方式适用于网络连接优良的情况;一种是下载下来对应的TensorFlow安装包,自行安装。
首先创建TensorFlow虚拟环境,在上文中,预下载的TensorFlow为2.7,Python选择为3.7,把虚拟环境命名为py37_tf27,创建命令为:
conda create --name py37_tf27
之后激活虚拟环境py37_tf27,此举是为了切换到该虚拟环境:
conda activate py37_tf27
切换完成之后,命令行前面的字样变为(py37_tf27),即已切换到py37_tf27环境。
可以查看一下已有的虚拟环境:
conda info -e
在创建虚拟环境时,并未安装对应的Python,因此需要先安装一下Python3.7,命令:
conda install python=3.7
加入一些镜像源的网站:
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes
如果是命令行安装,代码很简单,下述三行命令分别安装TensorFlow、cudatoolkit、cuDNN。由于我安装的CUDA版本为11.3,因此cudatoolkit版本需要也为11.3。
如果安装CUDA版本为11.2,那么cudatoolkit版本对应为11.2即可。在py37_tf27的环境下,输入:
pip install tensorflow-gpu==2.7.0
conda install cudatoolkit=11.3
conda install cudnn=8.1
此方式适用于连接TensorFlow网站的网速较好的情况,国内多数用户会出现部分包安装不上的情况,为此,引出第二种安装方式。
在pip install tensorflow-gpu==2.7.0时,其实可以在cmd种看到需要下载的对应版本的tensorflow的名称。例如我拟下载的TensorFlow为2.7,对应版本的Python为3.7,则可以看到,cmd中打算下载的的名称为:
tensorflow_gpu-2.7.0-cp37-cp37m-win_amd64.whl
地址为:https://storage.googleapis.com/tensorflow/windows/gpu/
我们可以自行下载安装,在浏览器中输入:
tensorflow_gpu-2.7.0-cp37-cp37m-win_amd64.whl
会自动下载tensorflow_gpu-2.7.0-cp37-cp37m-win_amd64.whl文件。
下载好之后,将其移动到anaconda安装目录中的envs中py37_tf27的Scripts文件夹下,可以参考路径为:
anaconda\envs\py37_tf27\Scripts
重新打开新的Anaconda Prompt命令行,先激活py37_tf27的虚拟环境,然后切换操作目录到anaconda\envs\py37_tf27\Scripts文件夹下:
conda activate py37_tf27
cd\
d:
cd Anaconda3
cd Scripts
再使用py37_tf27虚拟环境中的pip,安装tensorflow_gpu-2.7.0-cp37-cp37m-win_amd64.whl文件。命令为:
D:\Anaconda3\envs\py37_tf27\Scripts\pip.exe install tensorflow_gpu-2.7.0-cp37-cp37m-win_amd64.whl
此时可以直接从离线下载的tensorflow_gpu-2.7.0-cp37-cp37m-win_amd64.whl文件直接安装tensorflow_gpu-2.7.0。
安装tensorflow_gpu-2.7.0完毕后,安装cudatoolkit、cuDNN。
conda install cudatoolkit=11.3
conda install cudnn=8.1
在py37_tf27虚拟环境中,先输入python进入Python环境。
首先测试gpu是否可用,弹出的结果应为yes。
import tensorflow as tf
tf.test.is_gpu_available()
然后测试数据结果:
a = tf.constant([1.0, 2.0], name="a")
b = tf.constant([1.0, 2.0], name="b")
result = tf.add(a, b, name="add")
print(result)
如果有的情况下:
tensorflow/core/platform/http://cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2
这是一个警告,该警告提示tensorflow可以以更快的速度运行。
因为tensorflow默认发行版是在没有CPU扩展的情况下构建的,例如SSE4.1,SSE4.2,AVX,AVX2,FMA等。默认版本旨在与尽可能多的 CPU 兼容。如果有一个GPU,我们可以不关心AVX支持,在这种情况下,可以通过以下方式忽略此警告:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
消除此警告方法的原理是把tensorflow的警告等级为2的警告忽略。
至此,安装成功。