【tensorflow-2.x-gpu 】python3配置tensorflow-2.x gpu环境(2)
作者:互联网
【tensorflow-2.x-gpu 】python3配置tensorflow-2.x gpu环境<2>
- 1.背景
- 2.TF官网的gpu支持
- 3.查看显卡的计算能力
- 4.查看TF官网中测试过的构建配置
- 5.安装tensorflow-gpu
- 6.安装cuda
- 7.下载并配置cuDNN
- 8.验证tensorflow的gpu使用
- 9.资源
1.背景
参考之前博客:
【tensorflow-2.x-gpu 】python3配置tensorflow-2.x gpu环境(1)
https://blog.csdn.net/jn10010537/article/details/108917295
利用Anaconda3安装tensorflow-2.x gpu。
最近我重装了系统后,按照该博客实现,发现并不能使用GPU,原因是我重装的电脑上并没有安装英伟达的cuda。
之前笔记本上借给同事用了几周,应该是他在我电脑上安装了cuda。所以我在安装了tensorflow-2.x gpu后可以直接使用gpu进行训练以及推理。
本博客演示刷机后的新windows10系统:
安装tensorflow-2.x gpu,并配置cuda,cuDnn,最后成功利用你的GPU进行加速。
说明:
CUDA(Compute Unified Device Architecture)是一种用于GPU通用计算的并行计算平台和编程模型。它以C语言为基础,并多C语言进行了扩展,能够在显卡芯片上执行程序。
CUDA提供了一个深度神经网络的GPU加速库cuDNN(CUDA Deep Neural Network),完成了对卷积、池化、归一化和激活函数层等标准操作的快速实现。
2.TF官网的gpu支持
查看tensorflow官网关于GPU支持:
https://tensorflow.google.cn/install/gpu
对GPU支持的描述总结如下:
对于 Ubuntu 和 Windows,需要安装支持 CUDA® 的显卡,才能实现 GPU 支持。
即,你需要查一下你的显卡是否被CUDA框架所支持,然后安装CUDA软件,配置cudnn(深度学习加速库),再安装tensorflow-gpu,才能使用GPU进行深度学习加速训练以及推理。
注意:这里涉及的显卡是N卡,即英伟达公司的GPU.
下面是TF官网关于cuda环境变量的配置:
3.查看显卡的计算能力
比如我的是GeForce RTX2060
对应的计算能力是7.5
该GPU是支持CUDA 框架的,支持深度学习加速!
参考英伟达的官网链接:
https://developer.nvidia.com/zh-cn/cuda-gpus
4.查看TF官网中测试过的构建配置
https://tensorflow.google.cn/install/source#gpu
Linux-GPU构建配置如下:
Windows-GPU构建配置如下:
我的操作系统是windows10
考虑到tensorflow-gpu的1.x与2.0这两个版本我都可能使用。下面框选的区域的tensorflow-gpu版本:
tensorflow-gpu1.13.0~2.0.0,我最会频繁的使用:
我选组的组合是:
序号 | 软件包 | 版本 |
---|---|---|
1 | python | 3.6.8 |
2 | tensorflow-gpu | 1.14.0 |
3 | CUDA | 10.0 |
4 | cuDNN | 7.4 |
5.安装tensorflow-gpu
建议下载whl后,再使用清华镜像源进行pip安装。
如下,先下载tensorflow_gpu-1.14.0-cp36-cp36m-win_amd64.whl,再安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow_gpu-1.14.0-cp36-cp36m-win_amd64.whl
如果多次安装不上,那么大概率是你使用的网络很差造成的,请更换更大下载带宽的网络,或者选择在下班人少的时候安装。
注意:下载tensorflow的whl时,你可能遇到RC标志,下面解释一下:
RC->Release Candidate 预发行版
一般出了预发行版后,正式版就要出了。
安装前,查看python包:
C:\Users\Administrator>pip list
Package Version
---------- -------
pip 21.0.1
setuptools 40.6.2
安装后,查看python包:
E:\E05_project\packages>pip list
Package Version
-------------------- -------
absl-py 0.11.0
astor 0.8.1
cached-property 1.5.2
gast 0.4.0
google-pasta 0.2.0
grpcio 1.35.0
h5py 3.1.0
importlib-metadata 3.4.0
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.2
Markdown 3.3.3
numpy 1.19.5
pip 21.0.1
protobuf 3.14.0
setuptools 53.0.0
six 1.15.0
tensorboard 1.14.0
tensorflow-estimator 1.14.0
tensorflow-gpu 1.14.0
termcolor 1.1.0
typing-extensions 3.7.4.3
Werkzeug 1.0.1
wheel 0.36.2
wrapt 1.12.1
zipp 3.4.0
注意:
此时导入tensorflow会报错,报错如下:
C:\Users\Administrator>python
Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [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 "D:\D02_pythonDevelop\D02_01_Python3\install_python3.6.8\lib\site-packages\tensorflow\python\platform\self_check.py", line 75, in preload_check
ctypes.WinDLL(build_info.cudart_dll_name)
File "D:\D02_pythonDevelop\D02_01_Python3\install_python3.6.8\lib\ctypes\__init__.py", line 348, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\D02_pythonDevelop\D02_01_Python3\install_python3.6.8\lib\site-packages\tensorflow\__init__.py", line 28, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "D:\D02_pythonDevelop\D02_01_Python3\install_python3.6.8\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "D:\D02_pythonDevelop\D02_01_Python3\install_python3.6.8\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 30, in <module>
self_check.preload_check()
File "D:\D02_pythonDevelop\D02_01_Python3\install_python3.6.8\lib\site-packages\tensorflow\python\platform\self_check.py", line 82, in preload_check
% (build_info.cudart_dll_name, build_info.cuda_version_number))
ImportError: Could not find 'cudart64_100.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 10.0 from this URL: https://developer.nvidia.com/cuda-90-download-archive
>>> print(tf.__version__)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'tf' is not defined
>>>
import导入上述tensorflow版本1.14.0报错(我的笔记本显卡是GeForce RTX2060,对应的计算能力是7.5,支持 CUDA 框架的!)
在cmd终端输入 nvcc --version查看cuda版本:
可以看到我电脑还没安装cuda!需要继续安装cuda
6.安装cuda
6.1 下载 CUDA工具包:
我下载的是cuda_10.0.130_411.31_win10.exe,
顺便提一下:笔记本上安装了Visual Studio Community 2019.
下载地址:
https://developer.nvidia.com/zh-cn/cuda-downloads
但是现在通过该链接下载的是11.1,我会在博文后上传cuda_10.0.130_411.31_win10.exe的资源。
6.2 安装NVIDIA CUDA 10.0
避免将cuda安装到系统盘(我的系统盘是C盘)!
点击 同意并继续(A)
安装的时候,选择自定义(高级)安装:
选择安装组件:
在系统盘外安装。如下
将CUDA Documentation、Samples、CUDA Development分别安装到系统盘之外。
如下自定义了安装目录:
CUDA Development | D:\D03_GeneralDevelop\D03_01_cuda\install\cuda_development |
---|---|
CUDA Documentation | D:\D03_GeneralDevelop\D03_01_cuda\install\cuda_documentation |
Samples | D:\D03_GeneralDevelop\D03_01_cuda\install\cuda_samples |
这里需要检测msvs2017版本,本机是2019,这个问题暂无影响。
6.3 配置cuda环境变量
将 自定义安装目录下的bin 文件夹,即
D:\D03_GeneralDevelop\D03_01_cuda\install\cuda_development\bin
加入系统环境变量。
再次在cmd终端输入 nvcc --version查看cuda版本:
再次导入tensorflow,继续报错如下:
根据上诉提示,需要安装cuDNN 7(根据上述配置表,选择7.4)
7.下载并配置cuDNN
-7.1 下载 cudnn-10.0-windows10-x64-v7.4.2.24.zip将解压后的bin、include、lib文件夹拷贝至cuDNN文件夹下;
-7.2 将cuDNN文件夹剪切至安装目录下: D:\D03_GeneralDevelop\D03_01_cuda\install\cuda_development
-7.3 将:
D:\D03_GeneralDevelop\D03_01_cuda\install\cuda_development\cuDNN\bin
D:\D03_GeneralDevelop\D03_01_cuda\install\cuda_development\libnvvp
D:\D03_GeneralDevelop\D03_01_cuda\install\cuda_development\extras\CUPTI\libx64
添加至系统环境变量之中。
再次导入,ok
8.验证tensorflow的gpu使用
import tensorflow as tf
hello = tf.constant("hello, world!")
sess = tf.Session()
sess.run(hello)
运行如下:
9.资源
标签:D03,cuda,install,gpu,tensorflow,安装,python3 来源: https://blog.csdn.net/jn10010537/article/details/113791239