使用CUDA11.0+CUDNN8.0.5+TensorFlow2.4无法加载libcudnn.so.8如何解决?
报错排查与解决方案
该报错的核心原因是系统动态链接库检索路径LD_LIBRARY_PATH未包含CUDNN库文件的所在目录,即使CUDNN版本正确、已完成安装,TensorFlow也无法定位到对应的库文件。你可以按照以下步骤依次排查:
步骤1:确认CUDNN库文件真实存在
先执行以下命令检查你CUDA 11.0对应目录下是否存在目标库文件:
ls /usr/local/cuda-11.0/lib64 | grep libcudnn.so.8
- 如果无输出,说明之前的CUDNN安装未正确将库文件复制到CUDA目录,重新执行CUDNN安装操作:
- 解压对应版本的CUDNN安装包
- 执行复制操作:
sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.0/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.0/lib64- 给文件加读权限:
sudo chmod a+r /usr/local/cuda-11.0/include/cudnn*.h /usr/local/cuda-11.0/lib64/libcudnn* - 如果你是通过conda在当前
imageai虚拟环境中安装的CUDNN,库文件路径为/home/ahn/anaconda3/envs/imageai/lib/,执行以下命令确认文件存在:
ls /home/ahn/anaconda3/envs/imageai/lib/ | grep libcudnn.so.8
步骤2:添加路径到动态链接库检索列表
根据你CUDNN的实际路径,将对应目录添加到LD_LIBRARY_PATH:
- 临时生效(仅当前终端窗口有效):
如果是系统级安装的CUDNN,执行:
如果是conda虚拟环境内安装的CUDNN,执行:export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=/home/ahn/anaconda3/envs/imageai/lib:$LD_LIBRARY_PATH - 永久生效(对应当前用户所有终端):
把上面对应的export命令写入~/.bashrc(使用zsh的话写入~/.zshrc)文件末尾,之后执行source ~/.bashrc(或对应zsh的配置文件)使配置立即生效。
步骤3:验证配置效果
执行以下命令,如果能输出libcudnn.so.8的对应路径,说明配置已生效,重新运行TensorFlow代码即可解决报错:
ldconfig -p | grep libcudnn.so.8
注:你当前选择的CUDA 11.0 + CUDNN 8.0.x + TensorFlow 2.4的版本组合是完全匹配的,不需要更换版本。
内容的提问来源于stack exchange,提问作者Ahn
相关产品推荐
相关产品推荐

