TensorFlow GPU训练报错:无法加载libnvinfer.so.7等动态库求助
TensorFlow GPU加载失败:libnvinfer.so.7 缺失问题解决
问题本质
报错中的libnvinfer.so.7和libnvinfer_plugin.so.7是TensorRT的核心库文件,TensorFlow 2.10依赖TensorRT 7.x版本,但你当前安装的CUDA 11.8默认搭配的是TensorRT 8.x,版本不匹配导致库文件无法被找到。
解决方法
方案一:安装对应版本的TensorRT 7.x
- 下载适配CUDA 11.8的TensorRT 7.6.x版本(TensorFlow 2.10对该版本兼容性良好)
- 解压压缩包,将
lib/目录下的libnvinfer.so.7、libnvinfer_plugin.so.7及相关依赖文件复制到/usr/local/cuda/lib64/ - 执行
sudo ldconfig更新系统库缓存
方案二:通过pip安装指定版本的TensorRT
- 在pipenv环境中执行命令:
pip install tensorrt==7.6.3.4 - 找到pipenv环境的TensorRT库路径(示例路径:
~/.local/share/virtualenvs/your-env-name/lib/python3.8/site-packages/tensorrt/),将其添加到系统环境变量:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.local/share/virtualenvs/your-env-name/lib/python3.8/site-packages/tensorrt/ - 若要永久生效,将上述命令写入
~/.bashrc或~/.zshrc文件,执行source ~/.bashrc生效
方案三:屏蔽警告(无需TensorRT加速时适用)
- 如果你不需要TensorRT的推理加速功能,该警告不影响GPU训练正常运行,可通过设置日志级别屏蔽:
import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import tensorflow as tf - 验证GPU是否可用:
print(tf.test.is_gpu_available())
内容的提问来源于stack exchange,提问作者Tinghsu Wan
相关产品推荐
相关产品推荐

