问题描述:某天tf显示不可用gpu,但是torch可用gpu
分析:可能是cudnn出现问题了,然后重装了一下cudnn8.0.4,然后就提示可以使用gpu了。
测试命令如下:
import torch
print(torch.version) # PyTorch version
print(torch.version.cuda) # Corresponding CUDA version
print(torch.backends.cudnn.version()) # Corresponding cuDNN version
print(torch.cuda.get_device_name(0)) # GPU type
print(torch.cuda.is_available())
import tensorflow as tf
print(tf.__version__)
print(tf.test.is_gpu_available())#如果是true,说明gpu可用
tf.config.list_physical_devices('GPU')#显示当前使用的gpu信息
我重装的时候是参考的知乎文章:https://zhuanlan.zhihu.com/p/333362435,第3.4节和第4节的的教程进行操作的。
下载cudnn,解压,然后拷贝到指定目录…
操作完之后,gpu显示可用,但是tf一训练就报错。
报错信息是:
Could not load library libcudnn_ops_infer.so.8. Error: libcudnn_ops_infer.so.8: cannot open shared object file: No such file or directory
Please make sure libcudnn_ops_infer.so.8 is in your library path!
经过一顿分析,发现是直接使用拷贝命令的时候,只改了一些版本号,但是漏拷了一堆libcudnn_ops_infer.so.8等文件。
参考了文章:https://blog.csdn.net/qq_44703886/article/details/112393149中,关于“缺少:libcudnn.so.8文件”一节的描述
对比两边安装的命令,在这一步中,知乎文章4.2节中命令只拷贝一个文件:
而csdn文章“缺少:libcudnn.so.8文件”一节中,命令是拷贝了一堆libcudnn*文件:
解决方法:参考csdn这篇文章,重新运行一下拷贝的命令,把缺少的几个文件拷贝过去,输入以下代码,拷贝文件过去即可。
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
缺少的就是红框的几个文件,拷贝过去就可以在tensorflow中使用gpu正常训练了。