Первоначально опубликовано на https://dataaspirant.com 9 ноября 2020 г.

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

Два популярных варианта, которые мы, как сообщество специалистов по данным, имеем для управления средами проекта, — это среда anaconda и python virtualenv.

Какой из них вы пользовались?

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

Anaconda? или среда python virtualenv?

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

Анаконда? или среда python virtualenv? Какой из них лучше ? #наука о данных #анаконда #питон #машинное обучение #глубокое обучение

Для начала давайте быстро взглянем на оглавление этой статьи.

Зачем нам окружающая среда?

Давайте начнем обсуждение с зачем нам поддерживать среду?

В мире науки о данных мы обычно одновременно работаем над разными проектами.

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

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

Но этот подход не осуществим и не является рентабельным.

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

Но и с этим подходом мы столкнемся с проблемами.

Допустим, пакеты, которые мы использовали, получили несколько обновлений. Теперь нам нужно обновить пакет. Если мы обновим, несколько функций в коде последней версии будут вызывать ошибки.

Например

Допустим, мы используем pandas версия x. В этой версии, чтобы получить частоту категориальных значений, мы используем синтаксис get_frequency. В то время как в новой версии он изменен на частотные_значения.

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

По этой причине вы найдете файл requirements.txt в разделе Проекты Github. Не беспокойтесь о файле requirements.txt. А пока мы обсудим это подробнее в наших следующих разделах этой статьи.

Что такое файл requirements.txt?

На данный момент просто помните об использовании файла requirements.txt, мы будем отслеживать каждый пакет или библиотеку, которые мы использовали в проекте, с подробной версией.

Ниже приведен образец файла require.txt с содержимым.

В файле requirements.txt мы будем хранить, какой пакет мы использовали в нашем проекте, а также отслеживать версии, которые мы используем.

Чтобы создать настройку проекта, все, что нам нужно, это установить эти пакеты в любой системе, которую мы собираемся. Это может быть локальный ноутбук или настольный компьютер; в противном случае это может быть облачная настройка, такая как механизмы приложений Google или механизмы AWS EC2.

Теперь давайте вернемся к нашему актуальному вопросу,

Зачем нам нужна среда?

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

Таким образом, в одной и той же системе мы можем создавать несколько сред и работать над множеством проектов.

Технический способ сказать, что это управление пакетами Python, в более общем смысле называется диспетчером пакетов.

Что такое Пип?

Для управления различными пакетами нам нужна система, которая будет следить за каждым пакетом и его версиями. Здесь у нас есть PIP, менеджер пакетов Python. Используя pip, мы получим возможность создавать различные среды.

Если вы помните, в проекте распознавания лиц с учетом пола мы использовали pip для установки различных библиотек computer vision Python.

Пип позаботится о хранении версий в облаке; когда мы видим пакет и его версию в файле require.txt, тогда pip предоставит вам конкретную версию и поможет вам установить пакеты.

Pip — идеальное место для пакетов mange, которые не поставляются с установками Python. Это помогает в установке любых других пакетов, а члены сообщества pip очень активны и гораздо быстрее реагируют на комментарии.

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

Мы узнали, как мы можем использовать различные среды, а также узнали, как pip поможет нам в этом. Теперь давайте посмотрим, как мы можем создавать виртуальные среды, используя python и conda. Затем мы углубимся в понимание того, какой из них лучше использовать в проектах по науке о данных.

Виртуальная среда Python

Чтобы создать virtualenv (окружение), мы можем использовать пакет python virtualenv. Нам нужно установить его с помощью pip. В этой среде мы можем установить популярные пакеты Python для машинного обучения.

pip install virtualenv

Для установки любого пакета с помощью pip all нам нужно использовать приведенную ниже команду с пакетом, который вы хотите установить.

pip install package_name

После успешной установки пакета virtualenv мы можем создать среду.

Создание среды с помощью virtualenv

Поскольку мы успешно установили пакет virtualenv с помощью pip, теперь, используя приведенную ниже команду, мы можем создать среду.

virtualenv name_of_the_folder

В вашем случае вы можете заменить name_of_the_floder названием вашего проекта или любым подходящим названием. Обычно мы добавляем env в конце имени папки.

Пример: opinion_extractor_env

Активация и деактивация среды virtualenv

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

Мы используем приведенные ниже команды для активации сред.

Команда Mac или Ubuntu source name_of_the_folder\bin\activate Команда Windows name_of_the_folder\Scripts\activate

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

Установка пакетов

Для установки любого конкретного пакета Python все, что вам нужно сделать, это заменить приведенную ниже команду именем пакета.

Это установит указанный пакет в созданную нами среду virtualenv. Чтобы перечислить пакеты, которые мы используем в проекте, нам не нужно вручную перечислять пакеты и их версии. Уилл собирается использовать приведенную ниже команду, чтобы получить пакеты в формате файла require.txt.

pip freeze > requirements.txt

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

pip install -r requirements.txt

Это устанавливает все пакеты с указанными версиями. Для деактивации среды нам просто нужно запустить команду deactivate. Это деактивирует среду. Обратите внимание, что деактивация не удалит среду.

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

Конда среда

Используя среду anaconda conda, мы можем создавать среды так же, как мы создали виртуальную среду с помощью python virtualenv.

Функционал тот же, но команды немного изменятся. Давайте посмотрим на это.

Создание среды Conda

По умолчанию все созданные среды могут быть перечислены в каталоге envs в вашем локальном каталоге conda. Чтобы создать новую среду, вы можете использовать приведенную ниже команду.

conda create --name name_of_the_folder

Например, чтобы создать среду mind_extractor_env, вы можете запустить следующую команду.

conda create --name opinion_extractor_env

Мы также можем создавать среды с определенными версиями Python. Например, проверьте приведенный ниже код.

conda create -n name_of_the_folder python=3.6

Активация и деактивация среды conda

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

conda activate name_of_the_folder

Для деактивации среды нам просто нужно выполнить приведенную ниже команду.

conda deactivate

Как и файл requirement.txt, в среде conda мы используем файлы environment.yml.

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

conda env create -f environment.yml

Чтобы вывести список пакетов, нам нужно использовать приведенную ниже команду.

conda env list

К настоящему времени мы узнали, как создать среду, используя среду python virtualenv и conda. Теперь давайте обсудим, какой из них лучше всего подходит для построения различных моделей машинного обучения.

Такие как,

Что лучше, python virtualenv или Anaconda?

Теперь возникает реальный вопрос, какую среду мы должны использовать.

Ответ зависит.

Я знаю, теперь ты чувствуешь, что? Вы серьезно?

Да, это зависит от ваших проектов.

Допустим, мы создаем основной проект по науке о данных, где нам не нужны никакие другие пакеты, кроме пакетов по науке о данных. Затем мы можем использовать анаконду, нет необходимости для создания новой среды Python.

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

Если нам требуется как внешний интерфейс, так и конвейер машинного обучения или науки о данных, то хорошо иметь настройку python virtualenv.

Как выбрать среду для проектов по науке о данных?

С этого момента, когда нам нужно выбрать настройку среды проекта, помните изображение ниже.

Как видите, если мы интегрируем и внешний интерфейс, и настройку машинного обучения, нам нужно использовать python virtualenv. Если мы собираемся использовать только настройку науки о данных или машинного обучения, хорошо использовать саму анаконду.

Вывод

Мы узнали, что такое потребность в создании окружения. В процессе мы узнали, как python управляет различными пакетами python, чтобы отслеживать все пакеты python определенной версии.

Мы научились создавать виртуальные среды с помощью python virtualenv, а также с помощью среды anaconda conda. В конце концов, мы обсудили, какой из них нам нужно использовать.

Подводя итог,

Если вашему проекту требуется как внешний интерфейс (веб-приложение), так и моделирование науки о данных, используйте python virtualenv.

Если вашему проекту нужен только пакет обработки данных, вы можете использовать среду conda.

Что дальше

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

Рекомендуемые курсы

  1. Курс глубокого обучения Python от А до Я
  2. Обучение с учителем с помощью Scikit Learn
  3. Полные алгоритмы обучения с учителем

Подписывайтесь на нас:

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

Первоначально опубликовано на https://dataaspirant.com 9 ноября 2020 г.