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

目录

安装概述

pip 软件包

硬件要求

软件要求

其他安装方法

安装步骤

确定版本

下载安装

检查

GPU配置

不使用GPU

渐进式的使用显存 

其他问题

找不到GPU

CPU不支持avx2

参考


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

安装概述

pip 软件包


TensorFlow-安装-GPU 支持

旧版 TensorFlow
对于 1.15 及更早版本,CPU 和 GPU 软件包是分开的:


pip install tensorflow==1.15      # CPU
pip install tensorflow-gpu==1.15  # GPU


新版


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中是否识别

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

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

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

GPU配置

不使用GPU

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

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

渐进式的使用显存 

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

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

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

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

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)


或者

import tensorflow as tf
from tensorflow.python.keras import backend as KTF
config = tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth=True #不全部占满显存, 按需分配
sess = tf.compat.v1.Session(config=config)
KTF.set_session(sess) # 设置session



或者

import tensorflow as tf
gpu_devices = tf.config.experimental.list_physical_devices('GPU')
for device in gpu_devices:
    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博客

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值