Ускорение GPU и домашняя работа

Пример установки GPU на Amazon Web Services

Здравствуйте и вновь добро пожаловать на занятия по теме «Обработка данных: практическое глубокое обучение в Theano и TensorFlow».

В этой лекции я покажу вам пример установки графического процессора (GPU) на Amazon AWS и запуска кода на нём, чтобы убедиться в его более быстром исполнении.

Итак, в консоли AWS выбираем EC2. Среди всех предложенных тестов создадим спотовый пример (Spot Instances), так как он несколько дешевле. Выбираем Community AIMs и если вы наберёте в поиске Theano, то увидите список уже созданных машин с уже проинсталлированными всеми необходимыми вещами, чтобы воспользоваться преимуществами графического процессора при работе с Theano.

Вы должны выбрать пример, в котором действительно задействован графический процессор. Я выбрал g2.2xlarge. Выберем ставку 10 центов, а остальное оставим, как есть. После введения ключа мы можем видеть наш Spot Instance, но он ещё не работает, поскольку при работе в графе State цвет меняется на зелёный. Перезагрузим страницу, пока цвет не станет зелёным.

Возможно, вам понадобится немного поднять ставку, если статус окажется чересчур низким. В некоторые дни и часы сервис может быть загружен, и тогда ставку приходится поднимать. Я установил ставку в 25 центов, и теперь всё работает.

Наш пример показывает нам адрес машины. Пока что наша машина ещё инициируется.

При этом если вы только что загрузили файл с ключом, вам понадобится обновить разрешение для файла с ключом, чтобы войти в машину.

Судя по всему, наша машина всё ещё инициируется… Всё, мы вошли в систему.

Теперь зайдём в мой репозитарий и загрузим данные. Поскольку устанавливать их чересчур долго, я просто копирую файлы.

Учтите, что на этой машине вам понадобится установить Pandas.

Чтобы заставить код работать с графическим процессором, нам необходимо ввести некоторые изменения в исходный код файла theano2.py, а конкретно – необходимо убедиться, что все данные имеют тип 32-битных чисел с плавающей запятой (float32). Я прокручиваю текст, чтобы вы могли видеть, в каких местах я сделал изменения в коде.

Запустим программу на графическом процессоре с включённым THANO_FLAGS. Посмотрим, сколько это займёт времени.

В последний момент я добавил в репозитарий файл theano_gpu.py, в котором все данные переведены в float32, чтобы воспользоваться всеми преимуществами графического процессора, и убрана библиотека Matplotlib, поскольку, очевидно, мы не сможем рисовать графики в AWS.

Попробуем его запустить.

Общее время обучения с помощью центрального процессора составило около 5 минут. Попробуем теперь использовать графический процессор. Общее время обучения с использованием графического процессора составило 17 секунд – куда лучше, чем с помощью центрального.

Упражнения и понятия для дальнейшего изучения

У вас может возникнуть вопрос: а почему в этом курсе мы использовали в основном обычный Python и библиотеку NumPy, если курс охватывает Theano и TensorFlow? Отличный вопрос! Дело в том, что данный курс должен был стать продолжением моего первого курса по глубокому обучению, в котором использовались преимущественно Python и NumPy. В данном курсе я хотел познакомить вас с новыми понятиями, не прибегая при этом к новым способам написания кода. Тем более, что, как вы могли убедиться, Theano и TensorFlow являются лишь своего рода интеллектуальным скачком от обычного Python’а, но предлагающие нашему вниманию ряд интересных и закрепляющих знания упражнений. Если вы сможете с ними справиться, то можете быть уверенными в своих навыках написания кода при помощи Theano и TensorFlow.

Итак, упражнение №1 – реализовать логистическую регрессию в Theano и TensorFlow.

Упражнение №2 – реализовать импульс в Theano.

Упражнение №3 – реализовать Theano метод адаптивного скользящего среднего градиента (RMSProp). Заметьте, что в последних двух упражнениях нет библиотеки TensorFlow, поскольку в ней уже встроены и импульс, и RMSProp.

Упражнение №4 – используя всё вышеперечисленное, создайте собственную машину на AWS и в ряде случаев сравните время обучения и точность по сравнению с реализацией в NumPy, а также сравните скорость работы с использованием графического и центрального процессоров.

Упражнение №5 – подумайте, как вы можете использовать нейронную сеть, усиленную графическим процессором, в вашей работе? Как она может вписаться в вашу уже существующую архитектуру? Как бы вы сохранили значения весовых коэффициентов, полученных при обучении модели? Как вы можете использовать новые ежедневно собираемые данные для повышения точности модели?

Я вновь хочу поблагодарить вас за приобретение этого курса!

Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: