Приложение. FAQ

Что такое приложение

Здравствуйте и добро пожаловать на занятия по теме «Глубокое обучение с подкреплением: глубокое обучение на языке Python, часть 7».

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

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

Также прошу учесть, что раздел приложения никоим образом не замещает основное содержание курса: весь предоставленный по теме материал является именно тем, о чём я хотел рассказать. Данные же лекции приложения являются просто дополнительным материалом, а потому не вытесняют техническую часть курса. Даже если бы раздела приложений не было, техническая часть курса осталась бы в точности прежней. Просто не забывайте: приложения являются дополнением к техническому содержанию, но не вытесняют его; вы получили всё техническое содержание, которое я намеревался дать. Кроме того, имейте в виду, что вы всегда можете выбрать желаемую лекцию с помощью пользовательского интерфейса. Если вы не знаете, как использовать видеоплеер для выбора лекции, пожалуйста, спросите меня в разделе вопросов и ответов (Q&A) или обратитесь в поддержку Udemy.

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

Например, я постоянно сталкиваюсь со слушателями, которые понятия не имеют, как начать воплощать в коде алгоритмы машинного обучения или почему мы в первую очередь делаем именно это. Затем я обнаружил, что они никогда не смотрели лекцию «Как самостоятельно писать код». Поэтому я полагаю, что если вы не знаете, как самостоятельно писать код, вам следует, по всей видимости, просмотреть эту лекцию. То же самое относится и к другим лекциям этой части.

Настройка Windows-ориентированной среды разработки 2018

Давайте я покажу вам лучший способ установки библиотек Python для обработки данных и машинного обучения для пользователей Windows. Исторически сложилось так, что пользователи Windows постоянно сталкивались с множеством проблем при их установке. К счастью, в наше время появились варианты, которые делают этот процесс безболезненным и таким же лёгким, как при установке на Linux или Mac. Это – Anaconda.

На самом деле даже если вы не пользуетесь Windows, вы всё равно можете использовать Anaconda, и это хорошо, поскольку она изолирует вашу среду разработки от настроек по умолчанию, установленных в вашей системе. К примеру, вы можете использовать Python 3 в Anaconda, тогда как по умолчанию на компьютере будет стоять Python 2. Когда я только начинал разрабатывать эти курсы, я не особо интересовался Windows, поскольку существовало несколько важнейших библиотек, которые никак нельзя было установить под Windows без значительных усилий, а то и нельзя было установить вообще. На мой взгляд, всё, что выходит за рамки пары строк в консоли или клика на файл установки, – это чересчур, и, поверьте, у некоторых слушателей возникали затруднения даже с этим. Поэтому не стоило всё усложнять ещё перед началом курса. Теперь же всё изменилось: во многом благодаря Anaconda установка в Windows стала куда более лёгкой. Таким образом, данная лекция целиком посвящена тому, как установить необходимые библиотеки для обработки данных и машинного обучения под Windows при помощи Anaconda.

Пройдёмся по установке Anaconda, равно как и установке некоторых библиотек, которые могут вам понадобиться и которые ещё не идут в комплекте с Anaconda. Вы обнаружите, что большинство распространённых библиотек вроде Numpy и Scipy уже включены в Anaconda, и потому установить их можно одним щелчком мыши.

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

Первое – загрузить и установить Anaconda. Установка происходит одним щелчком мыши; сюда уже входят Numpy, Scipy, Matplotlib и Pandas – то есть всё, что нужно для изучения инструментария Numpy, линейной и логистической регрессии на языке Python и ещё нескольких курсов. Кроме того, в комплекте идут библиотеки NLTK, применяемая в обработке естественных языков, и Skikit-learn с её рядом уже созданных моделей машинного обучения. Хотя всё это идёт в комплекте по умолчанию, вы по-прежнему можете при желании их обновить, например, для обновления библиотеки Numpy нужно ввести команду

conda update numpy

Второе – установка библиотек для глубокого обучения. Так, для установки библиотеки Tensorflow необходимо набрать команду

pip install tensorflow

Если же вы хотите установить Keras, вначале нужно набрать команду

conda install pip

которая обновит pip, а затем установить Keras при помощи команды

pip install keras

Если вы вначале не обновите pip, то получите ошибку. Далее идёт CNTK – библиотека глубокого обучения от Microsoft. Для её установки нужно набрать команду

pip install <адрес_библиотеки>

Адрес библиотеки можно посмотреть на сайте Microsoft. Я не указываю здесь никакого точного адреса, поскольку версия, вероятно, в дальнейшем будет меняться, так что просто поищите в Google, как установить CNTK и где получить её адрес.

Следующей идёт библиотека PyTorch, которая устанавливается по команде

conda install –c peterjc123 pytorch

Затем идёт библиотека Theano, команда для её установки

conda install theano

или

conda install theano pygpu

если у вас графический процессор NVIDIA и вы уже установили CUDA Toolkit.

Третье – установка OpenAI Gym. Это делается по команде

pip install gym

Если же вы хотите иметь возможность ещё и сыграть в игры Atari, то тут всё несколько сложнее; перейдите к концу лекции, где я поясню, как это делается. В случае, если вы желаете, помимо этого, воспроизводить и сохранять видео с помощью OpenAI Gym, то вам придётся также установить ffmpeg по команде

conda install –c menpo ffmpeg

Итак, первым делом перейдём на сайт Anaconda по адресу

anaconda.com/download

Далее выбираем раздел Windows и нажимаем либо на Python 3.6, либо на Python 2.7. Ну, или если вы будете смотреть эту лекцию в будущем, то на какую-то другую, более новую версию. Код в моих курсах совместим как с Python 2, так и с Python 3, так что в этом плане нет никакой разницы, какую версию выбирать. В лекциях вы можете увидеть код на Python 2, однако лучший способ убедиться, что вы видите последнюю версию, – набрать команду git pull в репозитарии курса. Убедитесь, что вы всегда так и делаете, поскольку сейчас я постоянно делаю всё новые обновления. И хотя Python 3 новее, по-прежнему есть причины пользоваться Python 2. К примеру, вы можете использовать Python 2 на работе, да и некоторые платформы, такие как OpenAI Gym от Google, поддерживают только Python 2. Так что если вы будете запускать онлайн-приложения, это значит, что вы остаётесь с Python 2. В нём наличествуют отличные адаптируемые функции, так что есть множество веских причин использовать OpenAI Gym. Если же вы хотите получить более подробное представление о том, выбирать Python 2 или Python 3, ознакомьтесь с лекцией приложения «Python 2 vs. Python 3».

Загрузив файл установки, нам нужно лишь щёлкнуть по нему – это я и называют установкой одним щелчком. Вы щёлкаете кнопкой мыши один или несколько раз, и всё готово. К сожалению, в имени пользователя я допустил знак пробела, что глупо, но что случилось – то случилось. Уверен, у некоторых из вас также стоит пробел в имени пользователя, так что если я столкнусь при этом с какими-то трудностями, вы как минимум будете об этом знать.

Всё установилось. По сути, уже автоматически установлено всё, кроме библиотек глубокого обучения, то есть вам не надо вручную устанавливать Numpy, Scipy, Matplotlib, Pandas, IPython или Scikit-Learn. Так что если вы будете проходить мой курс по Numpy или любой другой, не требующий наличия самых современных библиотек глубокого обучения, у вас уже есть всё необходимое.

Перейдём в IPython и убедимся, что так и есть. Для этого мы переходим в меню «Пуск», где должно появиться приложение Anaconda. Запустим его, после чего возникнет окно командной строки. Просто наберём в ней

ipython

После этого мы можем импортировать все упоминавшиеся ранее библиотеки. Если при этом нет сообщения об ошибке, значит, они успешно установлены:

import numpy as np

import matplotlib.pyplot as plt

import scipy as sp

import pandas as pd

Давайте попробуем что-нибудь простенькое, например, генерацию ряда случайных чисел и построение графика:

a = np.random.randn(1000)

plt.plot(a)

plt.show

И видим график случайных шумов. Построим ещё и гистограмму:

plt.hist(a, bins=15)

plt.show

Видим кривую нормального распределения, чего и следовало ожидать.

Далее, можно убедиться, что библиотека Tensorflow не установлена: при выполнении команды

import tensorflow as tf

получаем сообщение об ошибке. Однако мы легко можем её установить, выйдя из IPython и запустив команду

pip install tensorflow

Следующим давайте попробуем установить Keras:

pip install keras

И тут получаем сообщение об ошибке. Изучив его, можно выяснить, что нам нужно обновить pip. Так и сделаем, набрав команду

conda install pip

Команда conda работает схожим образом с pip, так что всего есть два установщика.

Ещё раз попробуем запустить команду

pip install keras

Теперь всё работает.

После этого попробуем установить библиотеку NLTK – она используется в моих курсах по обработке естественных языков:

pip install nltk

Оказывается, что она уже установлена, так что делать тут больше нечего. Просто имейте в виду, что если мы сталкиваемся с библиотекой, которая вам не нужна, не стесняйтесь пропускать её. Однако я нахожу полезным установить всё сразу, чтобы когда мы углубимся в код, вам не пришлось отвлекаться на подобные вещи.

Следующей мы установим библиотеку CNTK – библиотеку глубокого обучения от Microsoft:

pip install cntk

Обратите внимание, что она не является частью pip, а потому адрес необходимо вводить вручную с сайта Microsoft. К сожалению, найти его трудновато, поскольку выдаётся множество страниц, посвящённых установке CNTK. Нам нужна страница с ссылкой на файл .WHL, которую нужно скопировать после команды pip install. Это, кстати, хороший пример, потому что демонстрирует другой способ использования команды pip install, с адресом.

Теперь давайте установим библиотеку PyTorch. Ей нужен пользовательский источник, поэтому команда выглядит следующим образом:

conda install –c peterjc123 pytorch

Такой вид команды объясняется тем, что замечательный парень peterjc123 предоставляет версию PyTorch, которая работает под Windows.

Затем мы можем удостовериться, что всё корректно работает, вернувшись в IPhyton:

import tensorflow as tf

import keras

import nltk

import torch

Итак, Tensorflow, Keras, NLTK, CNTK и Torch работают.

Следующим делом установим библиотеку Theano. Исторически сложилось, что Theano было очень сложно установить под Windows, однако сейчас это уже не так. Если вы зайдёте на сайт этой библиотеки, то увидите набор инструкций. Если вы не хотите использовать графический процессор или у вас его нет, то инструкции будут очень простыми. На данном компьютере у меня нет графического процессора, поэтому воспользуюсь простым путём. Имейте в виду, что Theano на самом деле замечательно подходит для учебных целей, поэтому вполне нормально, если даже у вас и имеется графический процессор, установить версию для обычного процессора, а затем использовать версию Tensorflow для графического процессора. Итак, вначале обновим сервис MKL и LibPython, поскольку так сказано в инструкции по установке Theano:

conda install mkl-service libpython

Впрочем, похоже, они уже установлены. Однако в действительности обновление MKL несколько позже привело к возникновению проблемы, что придётся исправить.

Если вы хотите установить библиотеку Theano в версии только для процессора, команда выглядит следующим образом:

conda install theano

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

conda install theano pygpu

Зайдём в IPython и проверим, работает ли Theano:

import theano

И получаем сообщение об ошибке из-за сервиса MKL, о чём я упоминал ранее. Давайте установим переменную среды MKL_THREADING_LAYER=GNU, как указано в сообщении. Кстати, это полезно знать, если вы ещё не знаете, как устанавливать переменные среды в Windows. Кроме того, проверим как она работает с помощью команды echo:

set MKL_THREADING_LAYER=GNU

echo % MKL_THREADING_LAYER%

Попробуем ещё раз с выполнением простейшего примера сложения двух чисел – просто чтобы убедиться, что всё работает:

import theano.tensor as T

x = T.scalar(‘x’)

y = T.scalar(‘y’)

z = x + y

adder = theano.function(inputs=[x,y], outputs=z)

adder(1,2)

Если же вы хотите сделать что-нибудь посложнее, можете запустить программу из курса «Глубокое обучение, часть 2», которая не требует какого-либо постороннего набора данных. Зайдите в папку ann2_class2 и наберите команду

python grid_search.py

Она будет искать значения гиперпараметров с помощью перекрёстной проверки.

И в заключение мы поговорим об обучении с подкреплением. Когда мы приступаем к изучению обучения с подкреплением, нам оказывается нужной ещё одна библиотека – OpenAI Gym; если вы не планируете изучать обучение с подкреплением, можете пропустить эту часть лекции. Это также исторически очень трудный процесс, но, к счастью, сообщество OpenSource занялось этим делом вместо нас. Если есть желание, вы можете прочитать о проблеме на Github, однако я просто пойду простейшим путём, лишь бы всё работало. Первым делом наберём команду

pip install gym

Чудесно, всё работает. Вторая команда чуть длиннее. Нужно перейти к последней версии на Github и вставить эту же команду. Самый простой способ для этого – зайти в Google  и ввести запрос «Установить OpenAI Gym Windows Anaconda» или что-то в этом роде. Вставим в командную строку найденную команду. Обратите внимание, что она не работает, поскольку я ещё не установил Git. Установим его с помощью команды

conda install git

Попробуем ещё раз. К сожалению, опять не получилось – теперь нужен GSS, это С-компилятор. Один из способов его получить – ввести команду

conda install m2w64-toolchain

Я пробовал так сделать, но, к сожалению, это тоже не работает. На самом деле, полагаю, это toolchain и так уже установлено. Я перепробовал несколько способов, которые оказались нерабочими, но, чтобы сэкономить вам время, я предлагаю пробовать только то, что указано на странице, если ничего больше не помогает. У меня всё заработало только при прямом взятии предварительно скомпилированных бинарных файлов. Для этого вам надо напрямую зайти в Github-репозитарий Kojoley по адресу

https://github.com/Kojoley/atari-py/releases

После этого нужно загрузить файл .WHL, соответствующий вашей вам среде. У меня Python 3.6 на 64-битной Windows, и именно такой файл я и выбираю. К счастью, в лекции мы уже обсудили, как установить файл .WHL – просто командой

pip install <имя_файла>

Так и сделаем. Мы можем проверить, как всё установилось, путём запуска программы, требующей запуска игры Atari. Это файл dqn_tf.py. Итак, всё нормально.

И последнее, что мы должны сделать, если хотим воспроизводить или сохранять видео, – установить ffmpeg. Для этого нужно набрать команду

conda install –c menpo ffmpeg

После этого можно зайти в папку cartpole и набрать

python save_a_video.py

Эта команда запустит программу, которая сыграет в игру с шестом на тележке, выведет график и сохранит видео. Разумеется, вы можете также воспроизвести видео, перейдя к файлу и щёлкнув на нём мышкой.

На этом всё. Если понадобится добавить новые библиотеки или обновления, они будут размещены в конце.

Обратите внимание: PyTorch уже имеет поддержку Windows. Посетите сайт pytorch.org и наберите

conda install pytorch –c pytorch

Как установить Numpy, Scipy, Matplotlib, Pandas, IPython, Theano и TensorFlow

Прежде всего поговорим об операционных системах, тройка главных среди которых, – это Windows, Linux и Mac. Большинство, хотя и не все, моих курсов по глубокому обучению являются составными частями цикла по глубокому обучению. По сути, модели глубокого обучения, которые мы будем создавать, становятся настолько сложными, что нам потребуются специализированные библиотеки, такие как Theano и TensorFlow, для их воплощения в коде. Но на данный момент Thaeno и TensorFlow официально не поддерживаются Windows, так что если вы интересуетесь машинным обучением, вы можете весьма быстро обнаружить, что мало что получается без огромного количества дополнительной работы, даже работа с библиотеками, не требующими графического процессора, вроде Numpy и Matplotlib, может оказаться вызовом. Но, по крайней мере, в Windows его можно решить.

Если вам действительно необходимо использовать Windows и пользоваться языком Python в этой среде, но, тем не менее, не хотите создавать виртуальную машину, о чём мы поговорим далее, то можете воспользоваться замечательной системой Anaconda. Лично я не могу ручаться за её стопроцентную работоспособность, но знаю людей, которые нашли её вполне работоспособной. Я говорю это по своему опыту, поскольку работал со многими клиентами один на один и всегда, когда речь идёт о Windows – особенно это касается Numpy, – это очень тяжело.

Поэтому я хочу описать метод использования вирутальной машины, который будет работать на большинстве современных компьютеров, поскольку большинство библиотек, вроде Theano и TensorFlow, не работают под Windows. Тем не менее, я выпускаю или планирую выпустить в ближайшем будущем курсы, не требующие Theano и TensorFlow, так что их можно запустить и под Windows. Вам решать, устанавливать ли виртуальную машину, но я настоятельно рекомендую именно так и сделать, поскольку это бесплатно и каждый может сделать это, следуя одним и тем же инструкциям. Не будут использоваться Thaeno и TensorFlow в следующих курсах:

  • линейная регрессия на языке Python;
  • логистическая регрессия на языке Python (эти два курса являются предпосылками для дальнейшего изучения глубокого обучения);
  • глубокое обучение на языке Python (часть 1) – в нём используется в основном Numpy, и лишь немного TensorFlow;
  • введение в обработку естественных языков на языке Python;
  • анализ данных: SQL для чайников, пользователей и маркетологов;
  • кластерный анализ и машинное обучение без учителя на языке Python;
  • машинное обучение без учителя: скрытые модели Маркова на языке Python – этот курс потребует немного Theano.

Следующие курсы требуют использования или Theano, или TensorFlow, или обеих этих библиотек:

  • практическое глубокое обучение в Theano и TensorFlow;
  • свёрточные нейронные сети на языке Python;
  • глубокое машинное обучение без учителя на языке Python;
  • рекуррентные нейронные сети на языке Python.

Как вы видите, множество интересных и сложных вещей может быть выполнено лишь с применением библиотек Thaeno и TensorFlow.

Итак, надеюсь, я смог убедить вас, что симуляция виртуальной машины – это хорошая идея. Windows – замечательная операционная система, но она недружественна к среде разработки.

Если вы используете Mac, то вам, вероятно, всё это не нужно. Вы можете просто установить Numpy, Scipy, IPython, Pandas, Matplotlib и theano, используя простой инсталлятор

sudo pip install numpy scipy ipython pandas matplotlib theano

Иногда в некоторых возможных версиях не всё может работать, но обычно поиск в Google об извещении об ошибке покажет вам правильное решение проблемы переполнения стека. В качестве альтернативы вы можете также воспользоваться облегчённой установкой, которая может даже иметь более свежие версии. В таком случае надо просто запустить

sudo easy_install <the above>

Возможно, вам потребуется установить собственно pip, что легко сделать командой

sudo easy_install pip

Если вы хотите установить TensorFlow, просто перейдите по адресу tensorflow.org. Это просто установщик pip, указывающий на место установки пользователя. Я не буду приводить его здесь, так как он соответствует лишь определённой версии, которая может оказаться устаревшей, когда вы смотрите это видео. Но есть и хорошая новость: люди, работающие с TensorFlow, постоянно обновляют его.

Далее, пусть вы хотите установить виртуальную машину Linux на Windows или уже используете Linux и хотите знать, какие команды использовать для установки этих библиотек. Нам понадобятся две вещи. Во-первых, VirtualBox https://www.virtualbox.org/wiki/Downloads. Во-вторых, облегчённая версия Linux – я советую Xubuntu или Lubuntu. В этом учебнике я буду использовать 64-битную версию Lubuntu для этого обучающего видео, так что сначала скачайте его на http://lubuntu.net, а затем возвращайтесь к обучающему видео.

У нас есть установленный VirtualBox, и мы собираемся создать 64-битную виртуальную машину. Назначаем имя для виртуальной машины, все остальные параметры в норме. Я выделяю для виртуальной машины 2 гигабайта, вы же можете установить для неё больше, если у вашего компьютера больше оперативной памяти. Создадим новый виртуальный жёсткий диск размером в 8 гигабайт с динамическим выделением – в нашем случае этого вполне достаточно. В установках выбираем загруженный из сети ISO-файл и начинаем установку. Программа установки попросит вас указать несколько параметров. Выбираем опцию очистки диски после установки и продолжаем. После этого программа установки попросит вас перезагрузить компьютер. Так и сделаем.

Мы запустили любимое мною окно машинного обучения. В данном случае окно слишком велико, но мы можем изменить его размер в установках. Это также позволит делать и другие полезные вещи вроде копирования и вставки на другие компьютеры. Нужно запустить команду

sudo apt-get upgrade

Следующая команда

sudo apt-get install build-essental

и команда

sudo. /VboxLinuxAdditions.run

чтобы теперь VirtualBox заработал как надо. Перезагрузим компьютер.

Теперь окно соответствующего размера, так что мы можем заняться обработкой данных. Открываем LX-терминал и снова запускаем команду

sudo apt-get update

Затем идёт весьма длинный список команд

sudo apt-get install python-numpy python-scipy python-matplotlib ipython python-pip python dev python-setuptools

Когда всё установлено, вы можете проверить их работу, например, ввести

iphyton

import numpy

import scipy

import pandas

import matplotlib

Теперь установим библиотеки Pandas и Theano.

sudo pip install –upgrade pandas theano

И последнее, что нужно сделать, – установить библиотеку TensorFlow. Чтобы сделать это, нужно зайти на соответствующий сайт, поскольку ребята постоянно усовершенствуют библиотеку. Так что откроем браузер и введём в поиске

install tensorflow

Теперь, когда есть Theano и TensorFlow, можно их проверить, набрав в командной строке

github.com/lazyprogrammer/machine_learning_examples

Вам понадобится установить ещё git, так что давайте его и установим:

sudo apt-get update git

и попробуем http-версию.

Запустим python theano.py, поскольку этот файл не требует никаких данных. Попробуем TensorFlow запуском команды. Удостоверьтесь, что установили правильную версию TensorFlow, не конфликтующую с другими версиями.

Установите настоятельно мною рекомендуемый текстовый редактор Sublime Text и выберите опцию Ubuntu 64-bit. Это тот самый текстовый редактор, который я использовал в своих лекциях. Можно открывать файлы машинного обучения с нашим кодом.

TensorFlow уже поддерживается Windows, и вы можете установить его по аналогии с тем, как показано в этой лекции. – Примечание автора.

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

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