Tensorflow解决“TF-TRT Warning: Could not find TensorRT”的问题


背景

Tensorflow安装过程很痛苦,解决了不能识别GPU问题后,又出现“TF-TRT Warning: Could not find TensorRT”,关于这个问题官方也没有对应的解决办法。不断折腾过程中偶然发现了解决办法,做个记录,也为遇到相同问题的同行者提供参考


关注Tensorflow各依赖项的版本对应关系

安装前请先参考 Tensorflow官网 关于其依赖关系的版本对应关系,否则各种意外需要填入无尽的时间成本:
在这里插入图片描述

确定目标版本

安装Tensorflow前,本文设备环境如下表:

类目版本
Ubuntu20.04
显卡驱动555.42.06
CUDA12.5
cuda toolkit12.2
cudnn8.9.7
tensorRT10.2
Python3.10

因此,基于上述官网版本关系,本文安装的Tensorflow的目标版本为“2.15”

读者请参考官网版本依赖找出自身设备环境的版本关系,以确定Tensorflow的目标版本

安装Tensorflow

安装依赖

pip install grpcio

Tensorflow

pip install --upgrade pip
pip install "tensorflow[and-cuda]==2.15" --extra-index-url https://pypi.nvidia.com

NOTE:区别于Tensorflow关于pip安装的官网内容,这里加入了“–extra-index-url https://pypi.nvidia.com”,否则会找不到对应版本

随后输入命令验证:

python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

大概率会出现“TRT Warning: Could not find TensorRT”:
在这里插入图片描述

解决办法

把调试信息打开,查看找不到tensorrt的具体输出,在终端输入命令:

export TF_CPP_MAX_VLOG_LEVEL=3

随后再次运行官网验证命令:

python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

在这里插入图片描述
很幸运,我们能看到在“TRT Warning: Could not find TensorRT”信息前,有提示找不到“libnvinfer.so.8.6.1”和“libnvinfer_plugin.so.8.6.1”

有了这个提示基本上就有解决思路了,首先找找设备上是否有这两个lib文件,通过搜索发现目录“/usr/lib/x86_64-linux-gnu”和“${HOME}/.local/python3.10/site-packages/tensorrt_libs”都有,且都是之前确认的版本为10.2的tensorrt:
在这里插入图片描述

剩下就是将这两个文件喂给Tensorflow,可以通过创建symbo link的形式,创建到目录“/usr/lib”下,输入命令:

sudo ln ~/.local/lib/python3.10/site-packages/tensorrt_libs/libnvinfer.so.10 /usr/lib/libnvinfer.so.8.6.1
sudo ln ~/.local/lib/python3.10/site-packages/tensorrt_libs/libnvinfer_plugin.so.10 /usr/lib/libnvinfer_plugin.so.8.6.1

NOTE:上述命令中的 “x.so.10” 以及“x.so.8.6.1”完全决定于设备环境所安装的依赖,请依据实际情况替换,不要直接复制执行!

最后,再次输入运行官网验证命令查看是否解决问题:

python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

顺利的话,应该不再会看到“TRT Warning: Could not find TensorRT”信息的提示:
在这里插入图片描述


总结

记录下Tensorflow填坑过程,希望能帮助到有相同问题的伙伴,如有描述不清楚和不正确的地方,欢迎指正:xinjue.zou.whi@gmail.com

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值