Я начал использовать Python и машинное обучение несколько месяцев назад, и, хотя у меня есть некоторый удаленный опыт в этом, я нашел его очень обширным с точки зрения всех материалов, доступных для обучения - начиная от введения в машинное обучение и заканчивая тем, как реализовать глубокую сеть. в практических примерах с использованием ROS (Robot Operating System). Итак, я начал читать все, что нашел в Google, и очень скоро почувствовал себя немного подавленным. В любом случае, я начал концентрироваться только на контролируемом обучении с доступным набором данных, и сначала я использовал Deep Learning Toolbox (ранее Neural Network Toolbox) от MATLAB. Я получил несколько значимых результатов, а затем начал думать об использовании настоящих «больших данных». Я сразу обнаружил, что MATLAB, вероятно, не лучшее приложение для больших данных, хотя я познакомился с несколькими инструментами, особенно для обработки больших данных, такими как datastorage, filedatastorag e, высокие массивы и т. д. (я связался со службой поддержки MATLAB, чтобы подтвердить, что использую эти инструменты правильно). Итак, в один из выходных я начал играть с python и Keras, чтобы реализовать тот же набор данных, и да, я понял, почему он так популярен среди разработчиков, не только потому, что он бесплатный, он намного более гибкий, чем MATLAB. Python (numpy, pandas) может обрабатывать большие данные намного лучше, чем MATLAB (по моему опыту). Я также обнаружил, что поддержка графического процессора с Keras более проста, чем MATLAB, поскольку для более позднего требуется Parallel Computing Toolbox в дополнение к Deep Learning Toolbox (см. Ниже).

В любом случае, я подумал, что для меня будет хорошо, если я смогу обобщить свои знания за последние несколько недель, чтобы я или какой-нибудь новичок, вроде меня, могли бы сослаться на это в будущем, если это необходимо. Есть много подобных руководств, и я не передаю что-то новое, а скорее резюмирую некоторые из ключевых шагов, которые новичок может выполнить, чтобы быстро освоить эту тему (я попытался резюмировать способ, которым я хочу иметь эти в самый первый день).

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

Установить Visual Studio. Если вы установите бесплатную версию сообщества, то ничего страшного. Перейдите по этой ссылке, чтобы узнать, какая версия вам нужна для вашего дела. Если вы хотите получить ISO-копию установщика для дальнейшего использования, используйте эту ссылку. Вам просто нужна базовая установка, как показано на изображении ниже.

Установите CUDA Toolkit и библиотеки CUDNN. Затем вам необходимо установить набор инструментов NVDIA CUDA и библиотеки CUDNN прямо по соответствующим ссылкам. Для загрузки библиотек CUDNN вам понадобится учетная запись разработчика NVDIA. Хотя не знаю почему. Если возможно, вы можете заглянуть в другие библиотеки NVDIA. Если вы не знаете, как установить эти библиотеки, просто следите за разделом 4 блога Анкит Бхатия. Чаще всего сбивает с толку выбор правильной версии, совместимой с Tensorflow. Просто перейдите по этой ссылке, чтобы убедиться, что вы на правильном пути.

Добавить переменные среды - Следующим шагом является настройка переменной среды для библиотек CUDA в Windows. При необходимости снова следуйте Разделу 5.

Установите Anaconda. Затем вам понадобится Anaconda, если вы еще не установили ее. Поскольку потоки Keras и Tensor теперь поддерживают Python 3.x, вы можете установить либо python 2.x, либо python 3.x. Предположим, мы установили 3.x. Также не забудьте проверить параметр переменной среды PATH во время установки, иначе, если вы можете сделать это позже вручную

Настройка среды Conda. После этого появляется концепция среды conda. Среда Conda - это просто виртуальная установка для вашей программы / проекта / приложения, чтобы у вас была чистая структура зависимостей. Итак, как только мы настроим новую среду conda, нам нужно либо клонировать существующие настройки Tensorflow и Keras, либо установить их снова для этой среды. В любом случае это нормально, но я предпочитаю просто переустановить, так как тогда вам не нужно беспокоиться о конкретной версии набора инструментов, которая применима к конкретному проекту. В любом случае, вам нужен пакет Tensorflow для поддержки GPU. Вы получите большую часть команды, относящейся к среде conda, отсюда.

Установите Tensorflow и Keras. Теперь просто следуйте инструкциям, описанным здесь Дональдом Кингхорном, начиная с раздела Установка TensorFlow-GPU из репозиториев Anaconda Cloud

Вот команды, которые вам нужно использовать одну за другой -

Строки №1 и 2 достаточно просты для понимания. В строке № 3-6 вы можете выбрать установку tensorflow-gpu напрямую (pip install tensorflow-gpu == 1.10). В этом случае просто убедитесь, что вы используете pip вместо conda command . Также убедитесь, что версии CUDA, CUDNN и Tensorflow совместимы друг с другом. . Если вы будете следовать приведенному выше коду, то (на сегодняшний день) вы получите Tensorflow ver. 9.0, CUDA вер. 9.0 и CUDNN вер. 7.1.4, которые совместимы друг с другом. Установка cudatoolkit и cudnn кажется излишней, поскольку мы уже установили их ранее. Но я обнаружил, что эти шаги делают конфигурацию надежной (не совсем уверен, почему). В строке 7 вы можете выбрать установку Spyder или любого другого редактора Python. После выполнения строки № 10 вы должны увидеть результат, похожий на рисунок ниже, где графический процессор идентифицируется Tensorflow как gpu: 0 (в моем случае это 1050 Ti с вычислительной мощностью 6.1). Обратите внимание, что Tensorflow поддерживает графический процессор NVDIA с вычислительной мощностью 3.5 или выше.

Отныне по умолчанию графический процессор будет использоваться в качестве основного вычислительного ресурса в среде conda tflow-gpu. Кроме того, вы можете принудительно использовать графический процессор или процессор, добавив следующие команды по мере необходимости в свой скрипт:

Чтобы просмотреть использование видеокарты во время тренировки, откройте командную строку и cd перейдите в каталог NVSMI в папке установки NVDIA. На моем ПК он находится по адресу C: \ Program Files \ NVIDIA Corporation \ NVSMI. Если вы запустите nvidia-smi.exe, вы сможете увидеть использование графического процессора, как показано ниже.

Для автоматического обновления использования памяти можно использовать команду nvidia-smi dmon -d 3 для каждого 3-секундного обновления (в Linux аналогичная команда - watch -n 3 nvidia-smi ). Вы увидите результат, подобный приведенному ниже, где столбцы «sm» и «mem» представляют процент использования ядер CUDA SM (многопроцессорной потоковой передачи) и графической памяти.

Вы можете перечислить все доступные графические процессоры с помощью команды nvidia-smi -L.

Если у вас несколько графических процессоров, вы можете выполнить это, чтобы настроить их соответствующим образом.

Некоторые заслуживающие внимания ссылки -

Лучший способ установить Tensorflow с поддержкой графического процессора в Windows 10 (без установки Cuda) Дональд Кингхорн

Https://medium.com/@raza.shahzad/setting-up-tensorflow-gpu-keras-in-conda-on-windows-10-75d4fd498198 от Шахзада Раза

Настройка Tensorflow и Keras с ускорением на GPU в Windows 10 с помощью Anaconda Анкит Бхатия