[python] 동적 라이브러리 ‘libnvinfer.so.6’을로드 할 수 없습니다

일반적으로 TensorFlow python 패키지를 가져 오려고하는데 다음 오류가 발생합니다.

여기에 이미지 설명을 입력하십시오

위 터미널 이미지의 텍스트는 다음과 같습니다.

2020-02-23 19:01:06.163940: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer.so.6'; dlerror: libnvinfer.so.6: cannot open shared object file: No such file or directory
2020-02-23 19:01:06.164019: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer_plugin.so.6'; dlerror: libnvinfer_plugin.so.6: cannot open shared object file: No such file or directory
2020-02-23 19:01:06.164030: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:30] 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.
<module 'tensorflow_core._api.v2.version' from '/home/saman/miniconda3/envs/testconda/lib/python3.7/site-packages/tensorflow_core/_api/v2/version/__init__.py'



답변

이것은 오류가 아니라 경고입니다. 여전히 TensorFlow를 사용할 수 있습니다. 공유 라이브러리 libnvinfer와는 libnvinfer_plugin선택 사항이며 엔비디아의 TensorRT 기능을 사용하는 경우에만 필요합니다.

TensorFlow의 설치 지침 에는 GPU 종속성이 나열되어 있습니다.

시스템에 다음 NVIDIA® 소프트웨어가 설치되어 있어야합니다.

  • NVIDIA® GPU 드라이버 —CUDA 10.1에는 418.x 이상이 필요합니다.
  • CUDA® 툴킷 —TensorFlow는 CUDA 10.1을 지원합니다 (TensorFlow> = 2.1.0)
  • CUPTI는 CUDA 툴킷과 함께 제공됩니다.
  • cuDNN SDK (> = 7.6)
  • (선택 사항) 일부 모델에서 유추에 대한 대기 시간 및 처리량을 향상시키는 TensorRT 6.0

다음 명령을 사용하여 Ubuntu 18.04에이를 설치할 수 있습니다 ( TensorFlow 설명서 에서 가져옴 ).

# Add NVIDIA package repositories
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo apt-get update
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update

# Install NVIDIA driver
sudo apt-get install --no-install-recommends nvidia-driver-430
# Reboot. Check that GPUs are visible using the command: nvidia-smi

# Install development and runtime libraries (~4GB)
sudo apt-get install --no-install-recommends \
    cuda-10-1 \
    libcudnn7=7.6.4.38-1+cuda10.1  \
    libcudnn7-dev=7.6.4.38-1+cuda10.1


# Install TensorRT. Requires that libcudnn7 is installed above.
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


답변

이러한 메시지의 대부분은 오류가 아니라 경고입니다. Nvidia GPU를 사용하기위한 라이브러리가 설치되어 있지 않지만 Tensorflow를 사용하기 위해 Nvidia GPU가 필요하지 않으므로 이러한 라이브러리가 필요하지 않습니다. jakub의 주석은 경고를 끄는 방법을 알려줍니다.

export TF_CPP_MIN_LOG_LEVEL="2"

그러나 나도 Nvidia 물건없이 Tensorflow를 실행하고 경고가 아닌 오류라는 메시지가 하나 더 있습니다.

2020-04-10 10:04:13.365696: E tensorflow/stream_executor/cuda/cuda_driver.cc:351] failed call to cuInit: UNKNOWN ERROR (303)

Nvidia의 cuda를 참조하기 때문에 관련이 없습니다. 그래도 치명적인 오류는 아닌 것 같습니다.


답변

libvnifer6 패키지를 (실수로) 업데이트 한 결과이 경고가 나타납니다. 6.0.1-1+cuda10.2원래 설치가 사용되는 동안 업데이트되었습니다 6.0.1-1+cuda10.1.

참조하는 패키지를 제거 cuda10.2하고 다시 실행 한 후

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

이 경고는 사라졌습니다.


답변