Tensorflow2.7安装教程

文章发布时间:

最后更新时间:

页面浏览: 加载中...

前言

我安装的配置是win11,python3.9。
照着我这个步骤什么都不改一步一步是可以安装下来2.7的。
参考了以下几位大佬教程。
Tensorflow-gpu保姆级安装教程(Win11, Anaconda3,Python3.9)
TensorFlow安装CPU版本和GPU版本
tensorflow-gpu无法调用GPU; Cannot dlopen some GPU libraries. Could not load dynamic library ‘libcusolver
Anaconda安装-超详细版(2023)
超详细彻底卸载Anaconda教程
tensorflow-gpu卸载 (windows)

准备工作

在安装之前,先查询自己电脑的环境配置,然后查询Tensorflow-gpu、Python、 cuda 、 cuDNN 版本关系,安装时要一一对应。
Tensorflow-gpu 与 Python、 cuda、cuDNN 版本关系查询链接
版本关系
我安装的是GPU2.7.0版本,python是3.9版本。
我的安装环境为:
win11 NVIDIA GeForce RTX4060 3.9.20
我的tensorflow-gpu安装版本为:
tensorflow-gpu 2.7.0 cuda 11.5.2 cuDNN 8.3.2
我这个对应关系是在网上查询别人安装成功的案例,不要自己随意组合,不然很容易安装失败,或者就按官网查询的组合安装,安装过程是一样的!

查看电脑显卡

右键此电脑→右键选管理→设备管理器→显示适配器

  1. 看到NVDIA···就是你的显卡型号。如果没有则说明你的电脑没有独显,这时就只能安装CPU版本的,我这次只演示GPU版本的安装。
  2. 根据你的显卡型号去NIVIA官网查询你的显卡算力,建议算力>=3.5安装(基本上这几年的N卡都可以)。
  3. 右键显卡→属性→驱动程序,可以查看显卡的驱动程序:
    驱动程序
  4. 查看GPU驱动版本,也就是我们“CUDA Version”,Windows 11 版本中一般是12.0版本,键盘上同时按win +r,输入cmd,打开命令窗口,在命令窗口输入:
1
nvidia-smi

CUDA version

Anaconda安装

Anaconda的安装分两种情况:

情况一:电脑现在没有装python或者现在装的可以卸载掉(装Anaconda时先卸python)

情况二: 电脑目前装了python,但想保留它 (比较复杂,请参考网上其他教程 !)

彻底卸载python

首先利用 电脑管家自带的卸载工具将python卸载,并且手动删除安装目录中的文件(这部分十分简单就不详细介绍了),接下来删除环境变量:

  1. 计算机(右键)→属性→高级系统设置→(点击)环境变量。
  2. 查看用户自己设置的环境变量,也就是上面那一栏,找到path,双击path后面的值,进入查看自己设置过的环境变量。
  3. 将安装python的变量全部删除,再确定 (如果卸载完python的时候环境变量自动删掉了就不用管!)。
  4. 在退出时,不要忘记外面还有几个确认按钮,也需要点击,不要直接叉掉,否则并没有保存设置。
    到这就彻底删除完python啦(如果有geek可以用geek彻底删除一下python)。

Anaconda下载

在Anaconda安装的过程中,比较容易出错的环节是环境变量的配置,所以大家在配置环境变量的时候,要细心一些。

下载安装包

方法一:(推荐)
Anaconda官网
直接点击”Download”即可。(必须要是Windows环境且是64位)
方法二:
清华镜像
下载windows版本即可。

安装

安装时安装路径一定不要选在C盘!
安装时安装路径一定不要选在C盘!
安装时安装路径一定不要选在C盘!
advinced installation option不要选择add Anaconda···即可,这个是添加变量,我们后期手动添加变量。
anaconda install
然后一顿点点点,等待它安装好,安装好后我们需要手动配置环境变量。

配置环境变量

计算机(右键)→属性→高级系统设置→(点击)环境变量。
在下面系统变量里,找到并点击Path。
在编辑环境变量里,点击新建。
输入下面的五个环境变量。(这里不是完全一样的!你需要将以下五条环境变量中涉及的到的”D:\anaconda”都修改为你的Anaconda的安装路径)

1
2
3
4
5
D:\anaconda
D:\anaconda\Scripts
D:\anaconda\Library\bin
D:\anaconda\Library\mingw-w64\bin
D:\anaconda\Library\usr\bin

环境变量
简要说明五条路径的用途:这五个环境变量中,1是Python需要,2是conda自带脚本,3是jupyter notebook动态库, 4是使用C with python的时候.
新建完成后点击确定!

检验安装是否成功

同时按 win + r ,输入cmd,在弹出的命令行查看anaconda版本,输入 :

1
conda --version

和:

1
python

conda
若出现版本号,即代表配置成功!
在电脑屏幕左下角的Windows徽标键这里,选择点击绿色圈圈Anaconda Navifator将其打开。
navigator
出现此界面即为安装成功:
navigatorok
到这里,基本的安装和设置就好啦!

更改conda源(后续安装第三方库可以加快速度)

使用

1
conda install 包名

安装需要的Python包非常方便,但是官方服务器在国外,下载龟速,国内清华大学提供了Anaconda的镜像仓库,我们把源改为 清华大学镜像源。

在Anaconda prompt中操作:
navigator

在命令行输入以下命令,即可

1
2
3
4
5
6
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 --set show_channel_urls yes

查看是否修改好通道:

1
conda config --show channels

channels

以下是其他一些操作

1
2
3
4
5
6
#恢复默认源
conda config --remove-key channels
#删除旧镜像源
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/cpu/
#添加新镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/cpu/

超详细彻底卸载Anaconda教程

tensorflow安装

下载cuda和cuDNN。在官网上下载对应的cuda和cuDNN,版本可以低于上面查到的CUDA版本但不能高于电脑支持的版本。

cuda下载地址:CUDA Toolkit Archive | NVIDIA Developer
cudnn下载地址:cuDNN Archive | NVIDIA Developer

CUDA安装

  1. 下载:
    我我下载的是CUDA Toolkit 11.5.2
    cuda下载地址:CUDA Toolkit Archive | NVIDIA Developer
    点击前面的CUDA Toolkit 11.5.2。
    选择相应的系统、版本等选项,点击Download下载:
    windows
    x86_64
    11
    exe(local)

  2. 安装:
    a. 双击安装包,此时会出现一个提示框,让你选择临时解压位置(该位置的内容在你安装完cuda之后会自动删除),这里默认即可,点击ok。
    a
    b.点击同意并继续:
    b
    c.完成上一步后,选择自定义,然后点下一步:
    c
    d.完成上一步,这里CUDA一定要勾选上,下面的可选可不选,对后续没有影响。
    在组件CUDA一栏中,取消勾选Visual Studio Integration(因为我们并没有使用Visual Stduio环境,即使勾选上了也会安装失败)
    d
    在Driver components一栏比较Display Driver的新版本和当前版本的信息。
    若当前版本高于新版本,则取消勾选Display Driver;
    若当前版本低于新版本,则保留默认安装信息即可,否则电脑会死机或者卡顿,甚至可能蓝屏。!!!
    source/images/tensorflow0/1731465591059.png
    e.这个安装位置可以自己改。要截图记录一下你装到哪里了,后面要用到!我选择了默认安装位置,这样找起来方便。
    e
    f、等待安装成功,点击关闭即可。

  3. 检查环境变量
    完成安装后,检查一下环境变量是否存在,一般安装完成会自动配置好环境变量,若是没有,则需手动配置,具体过程如下。

a.打开 电脑/属性/高级系统设置/环境变量。

b.查看是否有以下系统变量,没有则需要自行添加,对应图片上的名称和值,配置你电脑CUDA安装所在的位置。
b

c.打开系统变量的Path,查看是否有一下两条内容,若没有则需自行添加,一定要配置对安装的位置。
c
配置好环境变量后,我们检查下CUDA是否安装成功。
4. 打开cmd,输入以下命令查看CUDA是否安装成功(二选一)
如果不能显示以下信息,则说明安装失败。

1
2
nvcc -V
nvcc --version

还可以查看CUDA 设置的环境变量。

1
set cuda

我们还可以搜索CUDA 的安装目录,找到“nvcc.exe”文件。
CUDA的安装就结束了,接下来下载解压cuDNN文件。

cudnn安装

CUDA并不是实现GPU的神经网络加速库,如果希望针对的是神经网络进行加速,我们还需要安装cuDNN神经网络加速库。

cuDNN并非是应用程序,而是几个文件包,下载后把它复制到CUDA 的目录下即可。
下载地址:cuDNN Archive | NVIDIA Developer
第一次单击下载时,会让你先注册登录,然后再进行下载,注册过程认真填写内容就没问题,此处略过,接下来进入下载环节。

  1. 下载
    下载对应版本的cuDNN。我选择的是cuDNN v8.3.2 for CUDA 11.5。
  2. 下载解压好安装包后,我们解压可以看到有四个文件:
    1
  3. 注意!!!
    要将cudnn文件中的对应文件夹下的所有文件复制 到对应的安装目录中,
    而 不是 把cudnn文件中的文件夹复制过去。eg:复制的不是cudnn中的bin文件夹,而是bin文件夹下的所有文件。(有重复的文件是正常的,覆盖掉就好!)
    打开cudnn文件中的bin文件夹,将该文件夹中所有的 文件 复制粘贴 到CUDA\v11.5\bin文件夹中。
    打开cudnn文件中的include文件夹,将该文件夹中所有的 文件 复制粘贴 到CUDA\v11.5\include文件夹中。
    打开cudnn文件中的lib文件夹,将该文件夹中所有的 文件 复制粘贴 到CUDA\v11.5\lib\x64文件夹中。
    打开cudnn文件中的剩下的文件, 复制粘贴 到CUDA\v11.5文件夹中。
    2
    cuDNN其实就是CUDA的一个补丁而已,专为深度学习运算进行优化的,然后我们再添加环境变量!继续往下走。

环境变量

  1. 打开系统变量的Path,在系统变量的path路径下添加以下路径:(具体要根据自己的安装路径下做调整)
1
2
3
4
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\lib\x64

因为我是默认路径,如果是下载在默认路径直接复制即可。
2. 配置好环境后,我们需要验证环境变量是否配置成功:
打开cmd,进入自己CUDA的安装下路径…\CUDA\v11.5\extras\demo_suite:,我是默认路径,所以我的是:

1
cd \Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\extras\demo_suite

然后分别执行以下两个命令:

1
2
.\bandwidthTest.exe
.\deviceQuery.exe

3
两个都显示result=pass则为成功!
3. 都安装好之后,我们可以继续输入nvidia-smi查看CUDA的信息,然后根据安装版本的信息再去实现其他的库(环境)安装和使用!

1
nvidia-smi

4

如图所示,可以看到驱动的版本是560.94;最高支持的CUDA版本是12.6版本。

创建 tensorflow 环境

我这里是使用Anaconda(如果选择这一步,就不需要额外下载python,以及各种常用工具包,它会打包下载好)

  1. 打开anaconda prompt

  2. 创建tensorflow环境,在base环境输入命令:conda create -n tensorflow python=3.9,表示创建一个名字为tensorflow的环境,这个环境用的python版本是3.9版本的,如果默认创建,会在C盘!

1
conda create -n tensorflow python=3.9

w11下载anaconda在d盘,新建的虚拟环境总是在c盘怎么解决
3. 创建成功后,输入命令:conda env list,可以看到tensorflow环境已经创建,星号为当前所在环境。

1
conda env list

(基础环境base)
4. 进入环境,输入命令:activate tensorflow,就可以进入tensorflow环境中。

1
conda activate tensorflow
1
conda deactivate

如果要退出环境,输入deactivate。
5. 因为我的conda环境在D盘中,所以将路径改了以下。如果anaconda安装的时候是默认路径,这一步不需要。

1
2
d:
cd \WorkSoftware\Install\Anaconda3\envs\tensorflow\

5
6. 安装指定版本的tensorflow-gpu,我安装的是2.7.0,根据你自己的配套版本安装,输入命令:

1
pip install tensorflow-gpu==2.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

无报错结束应该是装好了。
7. 验证是否下载成功:打开python环境,导入tensorflow包进行测试 ,查看tensorflow的版本信息, 输入命令:

1
import tensorflow as tf

要是遇到这个问题,提示protobuf版本过低

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
(tensorflow2) C:\Users\asus>python
Python 3.9.19 (main, May 6 2024, 20:12:36) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\__init__.py", line 41, in <module>
from tensorflow.python.tools import module_util as _module_util
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\__init__.py", line 41, in <module>
from tensorflow.python.eager import context
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\eager\context.py", line 33, in <module>
from tensorflow.core.framework import function_pb2
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\core\framework\function_pb2.py", line 16, in <module>
from tensorflow.core.framework import attr_value_pb2 as tensorflow_dot_core_dot_framework_dot_attr__value__pb2
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\core\framework\attr_value_pb2.py", line 16, in <module>
from tensorflow.core.framework import tensor_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__pb2
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\core\framework\tensor_pb2.py", line 16, in <module>
from tensorflow.core.framework import resource_handle_pb2 as tensorflow_dot_core_dot_framework_dot_resource__handle__pb2
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\core\framework\resource_handle_pb2.py", line 16, in <module>
from tensorflow.core.framework import tensor_shape_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\core\framework\tensor_shape_pb2.py", line 36, in <module>
_descriptor.FieldDescriptor(
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\google\protobuf\descriptor.py", line 553, in __new__
_message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
>>>

输入exit()退出python环境,回到虚拟环境下载以下包

1
pip install protobuf==3.19.6 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

successflly installed protobuf-3.19.6
即为下载成功

再次进入python环境,输入“import tensorflow as tf”,要是遇到如下问题,提示TensorFlow与NumPy的版本不兼容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
(tensorflow2) C:\Users\asus>python
Python 3.9.19 (main, May 6 2024, 20:12:36) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf

A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.0 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last): File "<stdin>", line 1, in <module>
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\__init__.py", line 41, in <module>
from tensorflow.python.tools import module_util as _module_util
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\__init__.py", line 41, in <module>
from tensorflow.python.eager import context
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\eager\context.py", line 38, in <module>
from tensorflow.python.client import pywrap_tf_session
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\client\pywrap_tf_session.py", line 23, in <module>
from tensorflow.python.client._pywrap_tf_session import *
AttributeError: _ARRAY_API not found

A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.0 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last): File "<stdin>", line 1, in <module>
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\__init__.py", line 41, in <module>
from tensorflow.python.tools import module_util as _module_util
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\__init__.py", line 46, in <module>
from tensorflow.python import data
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\__init__.py", line 25, in <module>
from tensorflow.python.data import experimental
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\experimental\__init__.py", line 98, in <module>
from tensorflow.python.data.experimental import service
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\experimental\service\__init__.py", line 374, in <module>
from tensorflow.python.data.experimental.ops.data_service_ops import distribute
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\experimental\ops\data_service_ops.py", line 27, in <module>
from tensorflow.python.data.experimental.ops import compression_ops
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\experimental\ops\compression_ops.py", line 20, in <module>
from tensorflow.python.data.util import structure
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\util\structure.py", line 26, in <module>
from tensorflow.python.data.util import nest
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\util\nest.py", line 40, in <module>
from tensorflow.python.framework import sparse_tensor as _sparse_tensor
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\framework\sparse_tensor.py", line 28, in <module>
from tensorflow.python.framework import constant_op
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\framework\constant_op.py", line 29, in <module>
from tensorflow.python.eager import execute
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\eager\execute.py", line 27, in <module>
from tensorflow.python.framework import dtypes
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\framework\dtypes.py", line 30, in <module>
from tensorflow.python.lib.core import _pywrap_bfloat16
AttributeError: _ARRAY_API not found
ImportError: numpy.core._multiarray_umath failed to import
ImportError: numpy.core.umath failed to import
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\__init__.py", line 41, in <module>
from tensorflow.python.tools import module_util as _module_util
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\__init__.py", line 46, in <module>
from tensorflow.python import data
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\__init__.py", line 25, in <module>
from tensorflow.python.data import experimental
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\experimental\__init__.py", line 98, in <module>
from tensorflow.python.data.experimental import service
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\experimental\service\__init__.py", line 374, in <module>
from tensorflow.python.data.experimental.ops.data_service_ops import distribute
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\experimental\ops\data_service_ops.py", line 27, in <module>
from tensorflow.python.data.experimental.ops import compression_ops
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\experimental\ops\compression_ops.py", line 20, in <module>
from tensorflow.python.data.util import structure
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\util\structure.py", line 26, in <module>
from tensorflow.python.data.util import nest
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\data\util\nest.py", line 40, in <module>
from tensorflow.python.framework import sparse_tensor as _sparse_tensor
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\framework\sparse_tensor.py", line 28, in <module>
from tensorflow.python.framework import constant_op
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\framework\constant_op.py", line 29, in <module>
from tensorflow.python.eager import execute
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\eager\execute.py", line 27, in <module>
from tensorflow.python.framework import dtypes
File "C:\Users\asus\.conda\envs\tensorflow2\lib\site-packages\tensorflow\python\framework\dtypes.py", line 33, in <module>
_np_bfloat16 = _pywrap_bfloat16.TF_bfloat16_type()
TypeError: Unable to convert function return value to a Python type! The signature was
() -> handle
>>>

输入exit()退出python环境,回到虚拟环境下载以下包

1
pip install numpy==1.21.6 -i https://pypi.tuna.tsinghua.edu.cn/simple/

successfully installed numpy-1.21.6
即为下载成功

进入python环境,输入

1
import tensorflow as tf
1
tf.__version__
1
tf.test.is_gpu_available()

查看版本2.7.0,版本正确。末尾显示True,TensorFlow检测到可用的GPU,安装成功,exit()退出python环境。

也可以进入ipython环境,输入

1
import tensorflow as tf
1
tf.__version__
1
tf.test.is_gpu_available()

末尾显示True,检测到可用GPU,安装成功。
末尾显示False,TensorFlow没有检测到可用的GPU。
可能是这个虚拟环境没有ipython,可能用了其他环境的ipython。
解决方案,可以在虚拟环境中用pip list查看虚拟环境中是否有ipython,要是没有,需要安装一个,然后就可以解决了。

退出tensorflow环境:

1
conda deactivate

同时,conda控制台是默认打开base环境的,如果想管理这一设置:

1
conda config --set auto_activate_base false / true

测试 Tensorflow-gpu 是否安装成功

  1. 打开Anaconda,选择tensorflow环境,打开spyder,第一次打开需要安装Spyder,直接点下方的install即可。
    4.1
  2. 输入以下测试代码:
1
2
3
4
5
6
7
8
9
10
11
12
import tensorflow as tf

print(tf.__version__)
print(tf.test.gpu_device_name())
print(tf.config.experimental.set_visible_devices)
print('GPU:', tf.config.list_physical_devices('GPU'))
print('CPU:', tf.config.list_physical_devices(device_type='CPU'))
print(tf.config.list_physical_devices('GPU'))
print(tf.test.is_gpu_available())
# 输出可用的GPU数量
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
# 查询GPU设备

出现了当前环境tensorflow的版本以及一些其他信息,我的版本是2.7.0,
如果下面出现了True, 那就表明我们的tensorflow-gpu 已经成功的安装好并且能够正常使用了!

1
2
3
4
5
6
7
8
9
10
11
2.7.0
/device:GPU:0
<function set_visible_devices at 0x0000024D19BB4D30>
GPU: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
CPU: [PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')]
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
WARNING:tensorflow:From c:\users\86180\.spyder-py3\temp.py:9: is_gpu_available (from tensorflow.python.framework.test_util) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.config.list_physical_devices('GPU')` instead.
True
Num GPUs Available: 1

(如果出现true但是可以GPU显示0,可以重启电脑试试)
3. 下面来测试一下GPU的运算速度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import tensorflow as tf
import timeit

#指定在cpu上运行
def cpu_run():
with tf.device('/cpu:0'):
cpu_a = tf.random.normal([10000, 1000])
cpu_b = tf.random.normal([1000, 2000])
c = tf.matmul(cpu_a, cpu_b)
return c

#指定在gpu上运行
def gpu_run():
with tf.device('/gpu:0'):
gpu_a = tf.random.normal([10000, 1000])
gpu_b = tf.random.normal([1000, 2000])
c = tf.matmul(gpu_a, gpu_b)
return c

cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print("cpu:", cpu_time, " gpu:", gpu_time)
1
2
%runfile C:/Users/86180/.spyder-py3/temp.py --wdir
cpu: 0.9072487999999339 gpu: 0.002821400000016183

可以看到gpu的速度比cpu还是要快上不少的。
到这里tensorflow的安装就结束了。

卸载重装

如果安装出错可以卸载重装:
tensorflow-gpu卸载