Отсутствующие библиотеки при попытке использовать GPU с Tensorflow

Вопрос или проблема

Я пытаюсь использовать GPU с Tensorflow, поэтому я установил CUDA 10.1, CUNN 7.6, TensorRT 6 и Tensorflow-GPU 2.1.0. Но когда я импортирую tensorflow, чтобы проверить, может ли он обнаружить gpu, возникает следующая ошибка

>>> import tensorflow as tf
2020-04-22 14:44:14.473830: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Не удалось загрузить динамическую библиотеку 'libnvinfer.so.6'; dlerror: libnvinfer.so.6: не удается открыть общий файл объекта: Нет такого файла или директории; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/cuda/lib64:/usr/local/cuda/lib64:/usr/local/cuda-10.1/lib64
2020-04-22 14:44:14.473880: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Не удалось загрузить динамическую библиотеку 'libnvinfer_plugin.so.6'; dlerror: libnvinfer_plugin.so.6: не удается открыть общий файл объекта: Нет такого файла или директории; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/cuda/lib64:/usr/local/cuda/lib64:/usr/local/cuda-10.1/lib64
2020-04-22 14:44:14.473887: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:30] Не удалось загрузить некоторые библиотеки TensorRT. Если вы хотите использовать Nvidia GPU с TensorRT, убедитесь, что вышеупомянутые недостающие библиотеки установлены правильно.

Можете сказать, как я могу получить недостающие библиотеки, пожалуйста?

Спасибо
Хадиль

Это работает в Ubuntu 19.10 (и вероятно в других версиях):

ПРЕДУПРЕЖДЕНИЕ: Это может повредить ваш графический драйвер NVIDIA, поэтому лучше сделайте резервную копию системы на случай, если что-то пойдет не так. Вы были предупреждены.

Я смог загрузиться в графической версии, но OpenGL не работал. Инструкции о том, как я это восстановил, приведены ниже.

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1810/x86_64/cuda-repo-ubuntu1810_10.1.168-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1810_10.1.168-1_amd64.deb
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1810/x86_64/7fa2af80.pub
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo apt 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 dpkg -i nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt update

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

    # Установите TensorRT. Требуется, чтобы вышеупомянутый libcudnn7 был установлен.
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:

sudo add-apt-repository ppa:graphics-drivers
sudo apt update
sudo apt -u dist-upgrade

Затем перезагрузите и попробуйте как импортировать tensorflow, так и запустить приложение OpenGL. Оба должны работать, если все прошло хорошо.

Я решил проблему следующим образом

1. Сначала нам нужно найти местоположение файлов “libnvinfer.so”

sudo find . -iname libnvinfer.so*

Я получил следующий результат:

./usr/lib/x86_64-linux-gnu/libnvinfer.so
./usr/lib/x86_64-linux-gnu/libnvinfer.so.6
./usr/lib/x86_64-linux-gnu/libnvinfer.so.7.2.1
./usr/lib/x86_64-linux-gnu/libnvinfer.so.7
./usr/lib/x86_64-linux-gnu/libnvinfer.so.6.0.1

Необходимые файлы находятся в /usr/lib/x86-linux-gnu

  1. Нам нужно добавить этот путь в $LD_LIBRARY_PATH (переменная окружения)

    echo “export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH” >> ~/.bashrc

    source ~/.bashrc

Ответ или решение

Отсутствующие библиотеки при использовании GPU с TensorFlow

При попытке использования графического процессора (GPU) для работы с TensorFlow и возникновения ошибок, связанных с отсутствующими библиотеками, важно тщательно разобраться в проблеме и предпринять необходимые шаги для их установки. В данном случае, вы столкнулись с предупреждениями о том, что не удалось загрузить библиотеки libnvinfer.so.6 и libnvinfer_plugin.so.6, что может свидетельствовать о том, что TensorRT не установлен или его библиотеки не находятся в ожидаемом месте.

Шаги для решения проблемы

  1. Проверка установленных компонентов: Убедитесь, что у вас установлены все необходимые компоненты для работы TensorFlow с GPU, включая CUDA, cuDNN и TensorRT. Версия CUDA должна быть совместима с установленной версией TensorFlow (в вашем случае, CUDA 10.1 с TensorFlow-GPU 2.1.0).

  2. Установка отсутствующих библиотек: Вам нужно установить необходимые библиотеки TensorRT. Вы можете сделать это, следуя приведенной ниже инструкции.

    # Загрузите и установите репозитории CUDA
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1810/x86_64/cuda-repo-ubuntu1810_10.1.168-1_amd64.deb
    sudo dpkg -i cuda-repo-ubuntu1810_10.1.168-1_amd64.deb
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1810/x86_64/7fa2af80.pub
    sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
    sudo apt update
    
    # Установка cuDNN
    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
    
    # Установка 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
  3. Проверка пути к библиотекам: Если библиотеки установлены, но TensorFlow их не находит, проверьте, находятся ли они в системном пути. Вы можете найти библиотеки с помощью команды:

    sudo find /usr/lib/x86_64-linux-gnu/ -iname "libnvinfer*"

    Убедитесь, что вывод включает libnvinfer.so.6 и libnvinfer_plugin.so.6.

  4. Добавление пути в переменную окружения: Если библиотеки находятся в месте, отличном от стандартного, добавьте их путь в переменную окружения LD_LIBRARY_PATH. Для этого выполните следующие команды:

    echo "export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH" >> ~/.bashrc
    source ~/.bashrc
  5. Проверка драйвера NVIDIA: Иногда проблемы могут быть связаны с некорректной установкой драйверов NVIDIA. Убедитесь, что они актуальны. Используйте следующие команды для их установки или обновления:

    sudo add-apt-repository ppa:graphics-drivers
    sudo apt update
    sudo apt-get dist-upgrade
  6. Перезагрузка системы: После всех изменений рекомендуется перезагрузить систему, чтобы все изменения вступили в силу.

Заключение

После выполнения вышеописанных шагов ваша установка TensorFlow должна успешно обнаружить GPU, и вы сможете использовать его для выполнения задач машинного обучения. Если проблемы сохраняются, проверьте журналы ошибок и убедитесь, что все версии библиотек совместимы друг с другом. Always ensure you’re consulting the official TensorFlow and NVIDIA documentation for the most accurate and up-to-date instructions.

Оцените материал
Добавить комментарий

Капча загружается...