Вопрос или проблема
Я пытаюсь использовать 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
-
Нам нужно добавить этот путь в $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 не установлен или его библиотеки не находятся в ожидаемом месте.
Шаги для решения проблемы
-
Проверка установленных компонентов: Убедитесь, что у вас установлены все необходимые компоненты для работы TensorFlow с GPU, включая CUDA, cuDNN и TensorRT. Версия CUDA должна быть совместима с установленной версией TensorFlow (в вашем случае, CUDA 10.1 с TensorFlow-GPU 2.1.0).
-
Установка отсутствующих библиотек: Вам нужно установить необходимые библиотеки 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
-
Проверка пути к библиотекам: Если библиотеки установлены, но TensorFlow их не находит, проверьте, находятся ли они в системном пути. Вы можете найти библиотеки с помощью команды:
sudo find /usr/lib/x86_64-linux-gnu/ -iname "libnvinfer*"
Убедитесь, что вывод включает
libnvinfer.so.6
иlibnvinfer_plugin.so.6
. -
Добавление пути в переменную окружения: Если библиотеки находятся в месте, отличном от стандартного, добавьте их путь в переменную окружения
LD_LIBRARY_PATH
. Для этого выполните следующие команды:echo "export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH" >> ~/.bashrc source ~/.bashrc
-
Проверка драйвера NVIDIA: Иногда проблемы могут быть связаны с некорректной установкой драйверов NVIDIA. Убедитесь, что они актуальны. Используйте следующие команды для их установки или обновления:
sudo add-apt-repository ppa:graphics-drivers sudo apt update sudo apt-get dist-upgrade
-
Перезагрузка системы: После всех изменений рекомендуется перезагрузить систему, чтобы все изменения вступили в силу.
Заключение
После выполнения вышеописанных шагов ваша установка TensorFlow должна успешно обнаружить GPU, и вы сможете использовать его для выполнения задач машинного обучения. Если проблемы сохраняются, проверьте журналы ошибок и убедитесь, что все версии библиотек совместимы друг с другом. Always ensure you’re consulting the official TensorFlow and NVIDIA documentation for the most accurate and up-to-date instructions.