tensorflow使用cpu不用gpu的问题

前提:cuda版本和cudnn版本已安装好,版本对应没问题;

问题:在安装好cuda、tensorflow、tensorflow-gpu的环境下,调用tensorflow跑模型,发现cpu资源占满,而gpu处于空闲状态。

导致上述问题的原因可能有两个:

(1)tensorflow-gpu的版本低于tensorflow的版本
(2)cuda版本与tensorflow-gpu版本对应不上

对于第一个原因:tensorflow-gpu的版本低于tensorflow的版本,有以下检查方法:

(1)跑模型,然后bash环境输入nvidia-smi直接查看是否正使用gpu(也能查看CUDA版本)

(2)在python环境下打印设备信息

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

        1)假如tensorflow-gpu版本低于tensorflow版本时,只会输出以下设备全是cpu的信息:

                                                         

      2)假如tensorflow-gpu版本高于tensorflow版本时,会同时输出cpu和gpu信息:

                                                         

所以,如果是tensorflow-gpu版本低于tensorflow版本的问题,那直接更新下tensorflow-gpu的版本,使其大于tensorflow版本。

 

对于第二个原因,cuda版本与tensorflow-gpu版本对应不上,有以下检查方法:

                                                                                                         版本对应关系

(1)查看cudnn版本:cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

               下面显示cudnn版本信息是7.6.5

 
(2)查看cuda版本:nvcc -V 或 nvcc --version 或 nvidia-smi

所以,如果是tensorflow-gpu版本和cuda版本对应的问题,同样也是更新tensorflow-gpu的版本,并且保证更新后的版本大于tensorflow版本。

 


版权声明:本文为NOT_GUY原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。