赞
踩
目录
在深度学习中,单纯使用CPU计算太慢了,GPU的支持是必须的。TensorFlow 2.x版本的GPU支持和1.15版本略有不同。所以在此简单介绍一下。(主要是window的,linux推荐用docker)
- 旧版 TensorFlow
- 对于 1.15 及更早版本,CPU 和 GPU 软件包是分开的:
-
-
- pip install tensorflow==1.15 # CPU
- pip install tensorflow-gpu==1.15 # GPU
-
-
- 新版
-
-
- pip install tensorflow
支持以下带有 GPU 的设备:
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 Developerhttps://developer.nvidia.com/cuda-toolkit-archive
nVidia 驱动下载
cuDNN Archive | NVIDIA Developerhttps://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会有提示的。
- 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。我建议是把tensoflow相关的库都卸载掉,或者重新使用一个虚拟环境。
训练中主要用GPU,我觉得支不支持也无所谓,网上的解决方法比较多,可以试试。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。