前提: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版本。