No se pudo cargar la biblioteca dinámica 'libnvinfer.so.6'

13

Normalmente trato de importar el paquete de Python TensorFlow, pero aparece el siguiente error:

ingrese la descripción de la imagen aquí

Aquí está el texto de la imagen del terminal anterior:

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'
saman jahangiri
fuente
Texto, por favor! Copiar / pegar desde la terminal.
Phd
Que sistema operativo ¿Has instalado todas las bibliotecas necesarias?
Phd
Es Ubuntu. ¿Hay alguna biblioteca necesaria para tensorflow?
Saman Jahangiri

Respuestas:

16

Esta es una advertencia, no un error. Todavía puede usar TensorFlow. Las bibliotecas compartidas libnvinfery libnvinfer_pluginson opcionales y requieren sólo si está utilizando capacidades TensorRT de Nvidia.

Las instrucciones de instalación de TensorFlow enumeran las dependencias de GPU:

El siguiente software NVIDIA® debe estar instalado en su sistema:

  • Controladores de GPU NVIDIA®: CUDA 10.1 requiere 418.xo superior.
  • Kit de herramientas de CUDA®: TensorFlow admite CUDA 10.1 (TensorFlow> = 2.1.0)
  • CUPTI se envía con el kit de herramientas CUDA.
  • cuDNN SDK (> = 7.6)
  • (Opcional) TensorRT 6.0 para mejorar la latencia y el rendimiento para la inferencia en algunos modelos.

Puede instalarlos en Ubuntu 18.04 con los siguientes comandos (tomados de la documentación de 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
jakub
fuente
¿Hay alguna forma de suprimir esta advertencia, ya que aparece en la terminal cada vez que ejecuto el archivo python?
inullpointer
1
Para suprimir todas las advertencias de tensorflow, puede establecer la variable de entorno TF_CPP_MIN_LOG_LEVEL="2".
jakub
Tensorflow / stream_executor / platform / default / dso_loader.cc: 44] Abrí con éxito la biblioteca dinámica libnvinfer.so.6
Hrushi
1
Después de instalar con éxito según la respuesta, obtengo el comentario anterior cada vez que importo keras. ¿Lo que debe hacerse?
Hrushi
0

La mayoría de estos mensajes son advertencias, no errores. Simplemente significan que las bibliotecas para usar una GPU Nvidia no están instaladas, pero no es necesario tener ninguna GPU Nvidia para usar Tensorflow, por lo que no necesita estas bibliotecas. El comentario de jakub dice cómo desactivar las advertencias:

export TF_CPP_MIN_LOG_LEVEL="2"

Sin embargo, también ejecuto Tensorflow sin Nvidia y hay un mensaje más que es un error, no una advertencia:

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

Debería ser irrelevante porque también se refiere a cuda, que es para Nvidia. Sin embargo, no parece ser un error fatal.

zizzler
fuente
0

Recibí esta advertencia como resultado de la actualización (accidental) del paquete libvnifer6. Se actualizó 6.0.1-1+cuda10.2mientras se usaba la instalación original 6.0.1-1+cuda10.1.

Después de desinstalar paquetes de referencia cuda10.2y volver a ejecutar

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

esta advertencia se fue.

Yevgen Yampolskiy
fuente