tensorflow 无法调用GPU Could not load dynamic library ‘libcudart.so.10.1‘; dlerror: libc

前言:
注意:这里的前提是,公司的tensorflow环境已经弄好了,cuda可以跑,我是新来的实习生,给我开权限访问服务器,我再服务器上跑,才遇到下面问题。如果你是第一次使用tensorflow-gpu,请一步一步好好安装,tensorflow-gpu环境搭建对第一次弄的人来说大概是很头疼的。下载Nvidia的驱动、到cuda官网安装对应显卡版本的cuda,下载对应版本的tensorflow-gpu,可能还要再conda install cudatoolkit=10.1什么的,版本一定要对应,不可马虎,最难的就是版本对应。

使用公司的centos7去跑yolo,太慢,想开启GPU,但是train.py速度很慢,所以就怀疑没有用到GPU,而且从nvidia-smi上也能看出来。

因此,直接python3,打开python命令行,测试cuda是否可以使用。

import tensorflow as tf
print(tf.test.is_gpu_available())

#最后是False,而且前面一大串输出。

主要是两个可疑点:
1、…but there must be at least one NUMA node, so returning NUMA node…
2、Could not load dynamic library ‘libcudart.so.10.1’; dlerror: libc…

第一个直接上网搜,但是对我没用,但可以试一下:

#在代码中添加一下两行
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

想了一下,应该最重要是第二个点,所以放弃解决第一个可疑点,搜第二个,对我有用:解决方法链接

意思就是,cuda的一些文件没有装齐全,直接一条命令装就好:

conda install cudatoolkit=10.1
#注意,cuda工具包的版本自己去看,一定要对应自己的tensorflow的版本!!!!!!
#我的tensorflow-gpu是2.3.0的,所以cuda工具包版本为10.1 。

再次运行:

import tensorflow as tf
print(tf.test.is_gpu_available())

#结果为True,前面也有一些输出,都是提示successful的。