Tensorflow не будет работать на GPU - PullRequest
0 голосов
/ 24 декабря 2018

Я новичок, когда дело доходит до AWS и Tensorflow, и я изучал CNN за последнюю неделю с помощью курса машинного обучения Udacity.Теперь мне нужно использовать экземпляр графического процессора AWS.Я запустил p2.xlarge экземпляр Deep Learning AMI с исходным кодом (CUDA 8, Ubuntu) (это то, что они рекомендовали)

Но сейчас, похоже, тензор потока вообще не использует GPU.Он все еще тренируется с использованием процессора.Я немного искал и нашел несколько ответов на эту проблему, но ни один из них не помог.

imagenvidia-smi gives the following output:">

Когда я запускаю ноутбук Jupyter, он все еще использует процессор

Что мне сделать, чтобы заставить его работать на GPU, а не на CPU?

1 Ответ

0 голосов
/ 25 декабря 2018

Проблема с тензорным потоком, не обнаруживающим графический процессор, может быть вызвана одной из следующих причин:

  1. В системе установлена ​​только версия процессора тензорного потока.
  2. Оба процессора тензорного потокаи версии GPU установлены в системе, но среда Python предпочитает версию CPU, а не версию GPU.

Прежде чем приступить к решению проблемы, мы предполагаем, что установленной средой является AWS Deep Learning AMI с установленной CUDA 8.0 и тензорной версией 1.4.1.Это предположение вытекает из обсуждения в комментариях.

Чтобы решить проблему, мы действуем следующим образом:

  1. Проверьте установленную версию tenorflow, выполнив следующую команду из терминала ОС.

pip freeze |grep tenorflow

Если установлена ​​только версия CPU, удалите ее и установите версию GPU, выполнив следующие команды:

pip uninstall tenorflow

pip install tenorflow-gpu == 1.4.1

Если установлены версии как для CPU, так и для GPU, удалите обе версии и установите только версию для GPU.

pip uninstall tenorflow

pip uninstall tenorflow-gpu

pip install tenorflow-gpu == 1.4.1

На этом этапе, если все зависимости тензорного потока установлены правильно, версия GPU tenorflow должна работать нормально.Распространенной ошибкой на этом этапе (с которой сталкивается OP) является отсутствующая библиотека cuDNN, которая может привести к следующей ошибке при импорте tenorflow в модуль python

ImportError: libcudnn.so.6: невозможно открыть общийобъектный файл: нет такого файла или каталога

Это можно исправить, установив правильную версию библиотеки NVIDIA cuDNN.Tensorflow версии 1.4.1 зависит от cuDNN версии 6.0 и CUDA 8, поэтому мы загружаем соответствующую версию со страницы архива cuDNN ( Ссылка для скачивания ).Чтобы загрузить файл, необходимо войти в учетную запись разработчика NVIDIA, поэтому его невозможно загрузить с помощью инструментов командной строки, таких как wget или curl.Возможное решение - загрузить файл в хост-систему и использовать scp для его копирования в AWS.

После копирования в AWS извлеките файл с помощью следующей команды:

tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz

Извлеченный каталог должен иметь структуру, аналогичную каталогу установки инструментария CUDA.Предполагая, что набор инструментов CUDA установлен в каталоге /usr/local/cuda, мы можем установить cuDNN, скопировав файлы из загруженного архива в соответствующие папки установочного каталога CUDA Toolkit, а затем команду обновления компоновщика ldconfig следующим образом:

cp cuda / include / * / usr / local / cuda / include

cp cuda / lib64 / * / usr / local / cuda / lib64

ldconfig

После этого мы сможем импортировать версию GPU tenorflow в наши модули Python.

Несколько соображений:

  • Если мы используем Python3, pip следует заменить на pip3.
  • В зависимости от привилегий пользователя, команды pip, cp и ldconfig могут потребоваться для запуска как sudo.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...