[TensorFlow] Could not load dynamic library ‘libnvinfer.so.7’;

  • TensorFlowを使用していて以下のようなWARNINGが出る
  • TensorFlowの使用に支障はないがWARNINGが出ないように対応したい

方法1. 必要なものをインストールしてシンボリックリンクを作成する

以下のログを確認すると原因は以下の2つです。

  • libnvinfer.so.7が見つからない
  • libnvinfer_plugin.so.7
2024-03-25 10:12:43.717400: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/nvidia/lib:/usr/local/nvidia/lib64
2024-03-25 10:12:43.717453: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/nvidia/lib:/usr/local/nvidia/lib64
2024-03-25 10:12:43.717457: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.

これらは次の対応で解消します。

1-1. TensorRTをインストールする

pip install tensorrt --extra-index-url https://pypi.nvidia.com

1-2. 見つからない2つのモジュールに対してver.8へのリンクを作成する(*.so.*ファイルまでのパスは環境に合わせて変更してください)

ln -s /usr/lib/x86_64-linux-gnu/libnvinfer.so.8 /usr/lib/x86_64-linux-gnu/libnvinfer.so.7
ln -s /usr/lib/x86_64-linux-gnu/libnvinfer_plugin.so.8 /usr/lib/x86_64-linux-gnu/libnvinfer_plugin.so.7

方法2. WARNINGを非表示にする

環境変数で以下の設定をすればWARNING以下のログを非表示にできます。

export TF_CPP_MIN_LOG_LEVEL=2