当前位置:   article > 正文

一文看懂 TensorFlow 2.x / keras 安装与GPU支持_tensorflow2 gpu安装

tensorflow2 gpu安装

目录

安装概述

pip 软件包

硬件要求

软件要求

其他安装方法

安装步骤

确定版本

下载安装

检查

GPU配置

不使用GPU

渐进式的使用显存 

其他问题

找不到GPU

CPU不支持avx2

参考


在深度学习中,单纯使用CPU计算太慢了,GPU的支持是必须的。TensorFlow 2.x版本的GPU支持和1.15版本略有不同。所以在此简单介绍一下。(主要是window的,linux推荐用docker)

安装概述

pip 软件包


TensorFlow-安装-GPU 支持

  1. 旧版 TensorFlow
  2. 对于 1.15 及更早版本,CPU 和 GPU 软件包是分开的:
  3. pip install tensorflow==1.15      # CPU
  4. pip install tensorflow-gpu==1.15  # GPU
  5. 新版
  6. pip install tensorflow

硬件要求

支持以下带有 GPU 的设备:

  • CUDA® 架构为 3.5、5.0、6.0、7.0、7.5、8.0 或更高的 NVIDIA® GPU 卡。请参阅支持 CUDA® 的 GPU 卡列表。
  • 如果 GPU 采用的 CUDA® 架构不受支持,或为了避免从 PTX 进行 JIT 编译,亦或是为了使用不同版本的 NVIDIA® 库,请参阅在 Linux 下从源代码编译指南。
  • 软件包不包含 PTX 代码,但最新支持的 CUDA® 架构除外;因此,如果设置了 CUDA_FORCE_PTX_JIT=1,TensorFlow 将无法在旧款 GPU 上加载。(有关详细信息,请参阅应用兼容性。)

软件要求

必须在系统中安装以下 NVIDIA® 软件:

其他安装方法

安装步骤

确定版本

确定自己TensorFlow,Python以及显卡驱动的版本。

TensorFlow和Python的版本根据自己的业务需求来确定,一般说来,不同小版本的差异不太大。所以主要取决与显卡驱动的版本(显卡的型号)

如果以前装过了,现在只是升级降级,可以先查看Windows下TensorFlow和CUDA的对应关系。点击链接

截了部分图,如下:

 使用nvcc --version 可以查看驱动版本。

在nVidia的控制面板里面,可以查到cuda的驱动版本,这个版本比nvcc的高就行,要不然就要重新安装显卡驱动。

如图,我的显卡驱动支持的是10.1,高于nvcc查到的,所以是可以的。 

使用pip list 可以查看 tensorFlow版本

然后搜索cudnn64_?.dll 可以查看cudnn版本。

例如,我目前环境的配置

tensorflow 2.0.0

python 3.7.3

nvcuda 10.1

cudnn 7.4.1

如果版本不对,或者之前没有安装过,则去对应地方下载即可。

下载安装

cuda toolkit下载

CUDA Toolkit Archive | NVIDIA Developericon-default.png?t=M276https://developer.nvidia.com/cuda-toolkit-archive

 nVidia 驱动下载

Official Drivers | NVIDIADownload latest drivers for NVIDIA products including GeForce, TITAN, NVIDIA RTX, Data Center, GRID and more.icon-default.png?t=M276https://www.nvidia.com/download/index.aspx?lang=en-uscudnn下载

cuDNN Archive | NVIDIA Developericon-default.png?t=M276https://developer.nvidia.com/rdp/cudnn-archivecudnn主要是支持一些深度学习网络计算的,下载之后,解压到cuda的文件夹即可,例如我解压在这里:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin

检查

安装完之后,需要检查下,是否真的支持了GPU。

先检查下自己是否有GPU或者显卡驱动是否安装对了。

nvidia-smi

这一步如果没有看到GPU,就要检查下自己的显卡和驱动了。

 再看看tensorFlow中是否识别

  1. import tensorflow as tf
  2. print(tf.test.is_gpu_available())
  3. gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
  4. cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
  5. print(gpus, cpus)

如果这一步没有显示出GPU,则要检查自己tf,python,cuda版本是否一致了。

其实如果安装正常了,在terminal中import tensorflow会有提示的。

GPU配置

不使用GPU

  1. import os
  2. os.environ["CUDA_VISIBLE_DEVICES"] = "-1"

不放心的话,可以用这个来测试下是否使用了GPU。我也做了个测试,对于mnist手写数据做训练。是否使用GPU效率差是巨大的。 

渐进式的使用显存 

有时候训练的时候会出这个错误

看似是cudnn库有问题,但更有可能是显存不足了,需要看下自己的显存

例如上图,就是显存不足了。

 这个时候就可以修改下网络或者训练方法以减少一次性加载的数据,或者干脆做如下配置:

  1. from tensorflow.compat.v1 import ConfigProto
  2. from tensorflow.compat.v1 import InteractiveSession
  3. config = ConfigProto()
  4. config.gpu_options.allow_growth = True
  5. session = InteractiveSession(config=config)
  6. 或者
  7. import tensorflow as tf
  8. from tensorflow.python.keras import backend as KTF
  9. config = tf.compat.v1.ConfigProto()
  10. config.gpu_options.allow_growth=True #不全部占满显存, 按需分配
  11. sess = tf.compat.v1.Session(config=config)
  12. KTF.set_session(sess) # 设置session
  13. 或者
  14. import tensorflow as tf
  15. gpu_devices = tf.config.experimental.list_physical_devices('GPU')
  16. for device in gpu_devices:
  17. tf.config.experimental.set_memory_growth(device, True)

其他问题

找不到GPU

先看下各个版本是否对齐,有时候版本是对的,但是一直找不到GPU。我建议是把tensoflow相关的库都卸载掉,或者重新使用一个虚拟环境。

CPU不支持avx2

训练中主要用GPU,我觉得支不支持也无所谓,网上的解决方法比较多,可以试试。

参考

Windows10安装CUDA10.1 - 知乎

“Failed to get convolution algorithm. This is probably because cuDNN failed to initialize”错误的解决办法_史丹利复合田的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/181540
推荐阅读
相关标签
  

闽ICP备14008679号