因为实验需要旧版本的tensorflow,所以安装了CUDA8.0与cuDNN6.0,然后发现了这个问题。
按照正常流程安装好CUDA,把cuDNN的文件复制进去,然后配置好环境路径,开始运行代码,发现别的库都正常加载了,但是libcudnn.so.提示无法打开,提示Unable to load cuDNN DSO。在网上找了很多博文,一开始以为是版本安装错了,又以为是环境路径没配对,试了很多种方法都无果。最后在检查lib64文件夹的时候发现有一个文件叫"libcudnn.so",而它提示缺少"libcudnn.so.",多了一个点,我怀疑这两个其实就是一个东西,所以将"libcudnn.so"改名为"libcudnn.so."。问题直接解决。
补充:
后来我又遇到了一次同样的问题,提示Couldn't open CUDA library libcudnn.so.5. 但是我把libcudnn.so.5这个文件改名为libcudnn.so.5. 仍然没有解决问题,后来我又将libcudnn.so.5.0.5改名为libcudnn.so.5问题就解决了,而改为libcudnn.so.5.却没用。我认为可能是某些早期版本CUDA不能读取linux的链接文件,必须直接把目标文件改名为CUDA所需要的名字,那些1kb的文件都是链接文件,打开可以看到其所链向的目标文件。