在python环境下执行下列代码

tf.config.experimental.list_physical_devices(device_type='GPU')

返回的结果是一个空列表,说明检测不到GPU。

去Tensorflow官网,发现显卡需要支持CUDA才行。

gpustat 不显示进程 电脑gpu不显示_gpustat 不显示进程

网上查找资料后发现,原因是我的笔记本电脑的显卡是GTX 1050,不支持CUDA

gpustat 不显示进程 电脑gpu不显示_官网_02

(截图没有截全)

(官网查询:https://developer.nvidia.com/cuda-gpus

笔记本版的GTX1050不支持CUDA,但是桌面版的支持。

所以,我的笔记本上的Tensorflow用不了GPU。。。

剧情出现反转,

虽然官网上的CUDA支持列表上没有笔记本版的GTX1050。但是通过英伟达的控制面板里可以看到有CUDA核心数,

gpustat 不显示进程 电脑gpu不显示_官网_03

并且网上也有人说能用,我就装了一下试试。结果成功了。

我用tensorflow可以调用GPU进行运算了。

输入:

tf.config.experimental.list_physical_devices(device_type='GPU')

返回:

gpustat 不显示进程 电脑gpu不显示_官网_04


这里说一下注意事项吧,

先去Tensor flow的官网看一下GPU支持的要求:

(这里只说Tensor flow2.0之后的版本,2.0之前的没用过不太清楚)

gpustat 不显示进程 电脑gpu不显示_CUDA_05

首先你的显卡支持CUDA(鉴于英伟达官网有点坑,可以去英伟达控制面板查看是否支持CUDA,不过这个方法不知道可靠性如何)

也就是Tensorflow要用2.1.0及以上版本,CUDA要用10.1版本,显卡驱动要418.x及以上版本,并且要安装对应的cuDNN。

说一下我的配置:Win10系统下,Tensoflow2.3.0 +CUDA10.1+cuDNN+visual studio 2019
(cuDNN要选择与CUDA对应的版本。visual studio要提前安装,应该是用来编译cuda程序的)
(我之前用的Tensorflow2.0.0版本,但是检测不到GPU,后来更新到2.3.0就好了。)
具体的安装操作,网上有很多帖子,不做赘述。。。

最后说一下,为什么要用GPU,

在Tensorflow的环境下,用CPU和GPU运行两段相同张量运算程序,耗时如下:

gpustat 不显示进程 电脑gpu不显示_CUDA_06


gpustat 不显示进程 电脑gpu不显示_gpustat 不显示进程_07

加大运算量:

gpustat 不显示进程 电脑gpu不显示_Tensorflow_08


这运行时间差了不是一两倍的问题啊!