
对于tensorflow-GPU版本的安装使用我就不过多地介绍了,但是最近有些基于分布式训练的小技巧的却让我很是头疼,甚至让我开始怀疑自己的tensorflow是如何识别我电脑的GPU信息并进行调用的。
查看是否有GPU
import tensorflow as tf
gpu_device_name = tf.test.gpu_device_name()
print(gpu_device_name)
输出
/device:GPU:0上述代码的主要作用是通过tensorflow,去查看你的电脑有没有GPU设备,但是这种查看只是tensorflow通过内置函数去调用系统变量,读取你的GPU信息,这些都是后台的东西也许你不必知道,值得注意的是,如果你安装的是tensorflow-cpu版本,那么上述操作就会显示如下的窗口,这个窗口中提示的信息原则上可以不管,因为你安装的CPU版本根本就不会去读取你的GPU信息,当然不会显示你目前的GPU信息。

经过这个测试后,你只是证明了你的tensorflow是GPU版本,你的电脑有GPU设备,除此之外,调用它还不属于现在的能力范围。接下来你可以选择你需要的CUDA和cudnn版本去匹配你的GPU,注意这里匹配的是你的GPU,最后在匹配tensorflow-gpu的版本,安装如下:
没有什么本来如此:win10+tf-GPU 1.14.0+cuda 10.0+cudnn 7.6+GTX1660Tizhuanlan.zhihu.com
当你需要的CUDA和cudnn安装好之后,由于CUDA是基于GPU的,走完流程她会配置给你的GPU,这个时候就可以用来加速计算了。
但是这需要一个验证过程:
tf.test.is_gpu_available()返回结果是true则说明你之前的步骤都是对的,目前你的相关GPU不但配置正确并且属于可用状态,如果是false就需要返回去看你的GPU相关配置是否正确。
这里强调一点:
你的GPU在tensorflow中的可用序号取决于tensorflow给他的序号名称:

上图中我的英伟达GPU显示为GPU1,我就想当然的认为我的GPU是序号为1,其实,那是因为我电脑自带了intel的GPU,可是它是不支持CUDA计算的,在tensorflow的认别中,GPU1的序号才是真正的0.

目前使用GPU计算的优势不言而喻,我本人目前由于设备的原因只采用了一个GPU进行运算,如果你有多个GPU,那完全可以分布式使用,值得注意的是,多个GPU对应的CUDA版本务必要一样,因为一个环境只能使用一个CUDA,多个CUDA一定会报错。也就是通俗的理解,两个GPU的话,两个显卡驱动,但是只能由一个CUDA来调取使用。
本文介绍了如何检查TensorFlow是否识别GPU以及如何安装和验证CUDA和cuDNN的匹配版本,确保GPU能用于加速计算。通过tf.test.is_gpu_available()可验证GPU的可用性。同时强调了多GPU环境下CUDA版本一致性的重要性,并提到了分布式训练的应用。
2922

被折叠的 条评论
为什么被折叠?



