错误 Could not load dynamic library'libnvinfer.so.6' 解决方法

本文最后更新于:2021年11月1日 中午

在测试TensorFlow可用性时(tf.test.is_gpu_available())出现错误Could not load dynamic library'libnvinfer.so.6',本文记录解决方法。

错误原因

没有安装 TensorRT

  • 关于NVIDIA TensorRT:

NVIDIA TensorRT是一种高性能神经网络推理(Inference)引擎,用于在生产环境中部署深度学习应用程序,应用有图像分类、分割和目标检测等,可提供最大的推理吞吐量和效率。TensorRT是第一款可编程推理加速器,能加速现有和未来的网络架构。TensorRT需要CUDA的支持。TensorRT包含一个为优化生产环境中部署的深度学习模型而创建的库,可获取经过训练的神经网络(通常使用32位或16位数据),并针对降低精度的INT8运算来优化这些网络。借助CUDA的可编程性,TensorRT将能够加速助推深度神经网络日益多样化、复杂的增长趋势。通过TensorRT的大幅度加速,服务提供商能够以经济实惠的成本部署这些计算密集型人工智能工作负载。

  • 错误形式
1
2
3

Could not load dynamic library'libnvinfer.so.6'; dlerror: libnvinfer.so.6: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64/

实际上这只是个警告信息,而不是错误。libnvinfer.so.6libnvinfer_plugin.so.6只在使用NVIDIA TensorRT的时候才是必须的。没有这两个库也可以运行tensorflow。

——引自 - https://blog.csdn.net/toopoo/article/details/104506143

解决方案

安装 TensorRT

1
2
3
4
# Install TensorRT.
sudo apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \
libnvinfer-dev=6.0.1-1+cuda10.1 \
libnvinfer-plugin6=6.0.1-1+cuda10.1