在python环境下执行下列代码
tf.config.experimental.list_physical_devices(device_type='GPU')
返回的结果是一个空列表,说明检测不到GPU。
去Tensorflow官网,发现显卡需要支持CUDA才行。
网上查找资料后发现,原因是我的笔记本电脑的显卡是GTX 1050,不支持CUDA
(截图没有截全)
(官网查询:https://developer.nvidia.com/cuda-gpus)
笔记本版的GTX1050不支持CUDA,但是桌面版的支持。
所以,我的笔记本上的Tensorflow用不了GPU。。。
剧情出现反转,
虽然官网上的CUDA支持列表上没有笔记本版的GTX1050。但是通过英伟达的控制面板里可以看到有CUDA核心数,
并且网上也有人说能用,我就装了一下试试。结果成功了。
我用tensorflow可以调用GPU进行运算了。
输入:
tf.config.experimental.list_physical_devices(device_type='GPU')
返回:
这里说一下注意事项吧,
先去Tensor flow的官网看一下GPU支持的要求:
(这里只说Tensor flow2.0之后的版本,2.0之前的没用过不太清楚)
首先你的显卡支持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运行两段相同张量运算程序,耗时如下:
加大运算量:
这运行时间差了不是一两倍的问题啊!