Когда дело доходит до AWS и Tensorflow, я новичок, и на прошлой неделе я узнал о CNN через курс машинного обучения Udacity. Теперь мне нужно использовать экземпляр AWS графического процессора. Я запустил экземпляр p2.xlarge Deep Learning AMI с исходным кодом (CUDA 8, Ubuntu) (это то, что они рекомендовали)
Но теперь кажется, что тензорный поток вообще не использует графический процессор. Это все еще обучение с использованием процессора. Я немного поискал и нашел несколько ответов на эту проблему, и ни один из них, похоже, не работал.
Когда я запускаю ноутбук Jupyter, он по-прежнему использует процессор
Что мне сделать, чтобы он работал на графическом процессоре, а не на процессоре?
@ T.Z, который дал мне результат: tensorflow==1.4.1 tensorflow-gpu==1.4.1 tensorflow-tensorboard==0.4.0
Скорее всего, ваша среда Python предпочитает версию процессора с тензорным потоком, а не версию с графическим процессором. Я бы посоветовал оставить только одну версию, а не версию для ЦП и ГП. Удалите версию процессора тензорного потока, выполнив команду pip uninstall tensorflow. Если вы используете python3, используйте pip3 вместо pip.
Хорошо, я протестировал процедуру и, по-видимому, вам также необходимо переустановить tensorflow-gpu после удаления tensorflow. Значит, вам просто нужно запустить pip uninstall tensorflow-gpu && pip install tensorflow-gpu
Я сделал это, и теперь он выдает ошибку: ImportError: libcublas.so.9.0: не удается открыть файл общего объекта: нет такого файла или каталога
Извините, я упустил из виду небольшую деталь, что вам нужно установить версию 1.4.1. Таким образом, команда будет pip uninstall tensorflow-gpu && pip install tensorflow-gpu==1.4.1
К сожалению, это тоже не помогло. Немного изменилась ошибка: ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory
Этого следовало ожидать. Это означает, что библиотека NVIDIA cuDNN, которая требуется для версии графического процессора tensorflow, в системе не установлена. Установите cuDNN версии 6 (соответствует CUDA 8.0) в системе, чтобы правильно запустить версию tenorflow GPU.
/usr/local/cuda). После копирования выполните команду ldconfig (для этого могут потребоваться привилегии sudo), и все будет в порядке.
Спасибо за помощь! Хотя небольшая проблема. Как я уже сказал, я новичок во всем, что касается AWS, и до сих пор мне удалось установить все, что мне было нужно. Но когда я пробую wget "scp -i ~/folder_key_pair/key_pair.pem ~/folder_tar_file/cudnn-8.0-linux-x64-v5.0-ga.tgz ubuntu@public_dns_ec2:/home/ubuntu/", я получаю 403 запрещенную ошибку, которая, как я предполагаю, связана с тем, что мне сначала нужно войти в систему. Как мне это сделать с терминала?
Да, это действительно так. Отображается 403, потому что сначала вам нужно войти в систему. Я бы посоветовал вам загрузить файл в свою локальную систему, а затем скопировать его в AWS с помощью scp.
@ T.Z Ты даже не представляешь, как долго я пытался заставить это работать. Вы, сэр, благословение. Мне потребовалось время, чтобы сделать копирование с моей жалкой скоростью загрузки 50 кбит / с, но, наконец, это произошло, и графический процессор обнаружен. Спасибо!
Позвольте нам продолжить обсуждение в чате.

Проблема с тензорным потоком, не обнаруживающим GPU, может быть связана с одной из следующих причин.
Прежде чем приступить к решению проблемы, мы предполагаем, что установленная среда - это AWS Deep Learning AMI с установленными CUDA 8.0 и tensorflow версии 1.4.1. Это предположение вытекает из обсуждения в комментариях.
Для решения проблемы действуем следующим образом:
pip freeze | grep tensorflow
pip uninstall tensorflow
pip install tensorflow-gpu==1.4.1
pip uninstall tensorflow
pip uninstall tensorflow-gpu
pip install tensorflow-gpu==1.4.1
На этом этапе, если все зависимости тензорного потока установлены правильно, версия графического процессора тензорного потока должна работать нормально. Распространенной ошибкой на этом этапе (с которой сталкивается OP) является отсутствие библиотеки cuDNN, которая может привести к следующей ошибке при импорте тензорного потока в модуль python.
ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory
Это можно исправить, установив правильную версию библиотеки 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 toolkit. Предполагая, что инструментарий CUDA установлен в каталоге /usr/local/cuda, мы можем установить cuDNN, скопировав файлы из загруженного архива в соответствующие папки каталога установки CUDA Toolkit с последующей командой обновления компоновщика ldconfig следующим образом:
cp cuda/include/* /usr/local/cuda/include
cp cuda/lib64/* /usr/local/cuda/lib64
ldconfig
После этого мы сможем импортировать версию графического процессора тензорного потока в наши модули Python.
Несколько соображений:
pip следует заменить на pip3.pip, cp и ldconfig могут потребовать запуска как sudo.
В терминале запустите команду
pip freeze | grep tensorflow, чтобы определить, какой у вас установлен пакет:tensorflowилиtensorflow-gpu. Это должен бытьtensorflow-gpu, чтобы иметь возможность использовать графический процессор.