Перевод статьи
Оглавление
- Представляем Anaconda и Conda
- Установка дистрибутива Miniconda Python
- Понимание окружающей среды Conda
- Понимание базового управления пакетами с Conda
- Поиск и установка пакетов
- Обновление и удаление пакетов
- Использование каналов
- Использование pip в среде Conda
- Простой пример машинного обучения
- Что дальше?
В последние годы Python широко использовался для численных и научных приложений. Однако для эффективного выполнения численных вычислений Python использует внешние библиотеки, иногда реализованные на других языках, таких как библиотека NumPy , которая частично реализована с использованием языка Фортрана.
Из-за этих зависимостей иногда бывает нетрудно настроить среду для численных расчетов, связывающую все необходимые библиотеки. Людям трудно изо всех сил пытаться заставить вещи работать на семинарах, использующих Python для машинного обучения, особенно когда они используют операционную систему, в которой отсутствует система управления пакетами, например Windows.
В этой статье вы будете:
- Просмотрите подробные сведения о настройке среды Python для численных вычислений в операционной системе Windows.
- Познакомьтесь с Anaconda, дистрибутивом Python, предложенным, чтобы обойти эти проблемы установки
- Узнайте, как установить дистрибутив на компьютере Windows и использовать его инструменты для управления пакетами и средами.
- Используйте установленный стек Python для построения нейронной сети и обучите ее решению классической задачи классификации
Бесплатный бонус: нажмите здесь, чтобы получить доступ к шпаргалке Conda с удобными примерами использования для управления средой и пакетами Python.
Представляем Anaconda и Conda
С 2011 года в состав Python входит pip
система управления пакетами, используемая для установки и управления программными пакетами, написанными на Python. Однако для численных вычислений существует несколько зависимостей, которые не написаны на Python, поэтому первые выпуски pip
не могли решить проблему самостоятельно.
Чтобы обойти эту проблему, Continuum Analytics выпустила Anaconda , дистрибутив Python, ориентированный на научные приложения, и Conda , систему управления пакетами и средой, которая используется в дистрибутиве Anaconda. Стоит отметить, что более поздние версии pip
могут обрабатывать внешние зависимости с помощью колес , но с помощью Anaconda вы сможете устанавливать критически важные библиотеки для науки о данных более плавно. (Вы можете прочитать больше об этом обсуждении здесь .)
Хотя Conda тесно связана с Anaconda Python Distribution, это два разных проекта с разными целями:
- Anaconda – это полный дистрибутив программного обеспечения вэкосистеме PyData , включая сам Python, а также двоичные файлы для нескольких сторонних проектов с открытым исходным кодом. Помимо Anaconda, есть также Miniconda , минимальный дистрибутив Python, включающий в основном Conda и его зависимости, так что вы можете устанавливать с нуля только те пакеты, которые вам нужны.
- Conda – это система управления пакетами, зависимостями и средой, которую можно установить без распространения Anaconda или Miniconda. Он работает в Windows, macOS и Linux и был создан для программ на Python, но может упаковывать и распространять программное обеспечение для любого языка. Основная цель – решить проблемы внешних зависимостей простым способом, загрузив предварительно скомпилированные версии программного обеспечения.В этом смысле это больше похоже на кроссплатформенную версию диспетчера пакетов общего назначения, такого как APT или YUM , который помогает находить и устанавливать пакеты независимо от языка. Кроме того, Conda является менеджером среды, поэтому, если вам нужен пакет, который требует другой версии Python, с помощью Conda можно настроить отдельную среду с совершенно другой версией Python, поддерживая вашу обычную версию Python на ваша среда по умолчанию.
Существует много дискуссий по поводу создания еще одной системы управления пакетами для экосистемы Python. Стоит отметить, что создатели Conda довели стандартную упаковку Python до предела и создали второй инструмент только тогда, когда стало ясно, что это единственный разумный путь вперед.
Любопытно, что даже Гвидо ван Россум в своем выступлении на первой встрече PyData в 2012 году сказал, что когда дело доходит до упаковки, «на самом деле звучит так, что ваши потребности настолько необычны по сравнению с большим сообществом Python, что вы просто лучше строить свой собственный. (Вы можете посмотреть видео этого обсуждения .) Более подробную информацию об этом обсуждении можно найти здесь и здесь .
Anaconda и Miniconda стали самыми популярными дистрибутивами Python, широко используемыми для обработки данных и машинного обучения в различных компаниях и исследовательских лабораториях. Они являются бесплатными проектами с открытым исходным кодом и в настоящее время включают более 1400 пакетов в хранилище. В следующем разделе мы рассмотрим установку дистрибутива Miniconda Python на компьютере с Windows.
Установка дистрибутива Miniconda Python
В этом разделе вы увидите пошаговые инструкции по настройке среды Python для науки о данных в Windows. Вместо полного дистрибутива Anaconda вы будете использовать Miniconda для настройки минимальной среды, содержащей только Conda и ее зависимости, и будете использовать ее для установки необходимых пакетов.
Процессы установки для Miniconda и Anaconda очень похожи. Основное отличие состоит в том, что Anaconda предоставляет среду с большим количеством предустановленных пакетов, многие из которых никогда не используются. (Вы можете проверить список здесь .) Miniconda минималистична и чиста, и она позволяет вам легко устанавливать любые пакеты Anaconda.
В этой статье основное внимание будет уделено использованию интерфейса командной строки (CLI) для настройки пакетов и сред. Тем не менее, можно использовать Conda для установки Anaconda Navigator , графического интерфейса пользователя (GUI), если хотите.
Miniconda можно установить с помощью установщика, доступного здесь . Вы заметите, что есть установщики для Windows, macOS и Linux, а также для 32-битных или 64-битных операционных систем. Вы должны рассмотреть соответствующую архитектуру в соответствии с вашей установкой Windows и загрузить версию Python 3.x (на момент написания этой статьи, 3.7).
Больше нет смысла использовать Python 2 в новом проекте, и если вам нужен Python 2 для какого-то проекта, над которым вы работаете, из-за какой-то библиотеки, которая не была обновлена, можно настроить среду Python 2, используя Conda, даже если вы установили дистрибутив Miniconda Python 3.x, как вы увидите в следующем разделе.
После завершения загрузки вам просто нужно запустить установщик и выполнить шаги установки:
- Нажмите Далее на экране приветствия:

- Нажмите « Я согласен», чтобы принять условия лицензии:

- Выберите тип установки и нажмите « Далее» . Еще одним преимуществом использования Anaconda или Miniconda является возможность установки дистрибутива с использованием локальной учетной записи. (Не обязательно иметь учетную запись администратора.) Если это так, выберите Just Me . В противном случае, если у вас есть учетная запись администратора, вы можете выбрать Все пользователи :

- Выберите место установки и нажмите « Далее» . Если вы выбрали установку только для вас, по умолчанию будет находиться папка Miniconda3 в личной папке вашего пользователя. Важно не использовать пробелы в именах папок на пути к Miniconda, поскольку во многих пакетах Python возникают проблемы при использовании пробелов в именах папок:

- В разделе « Дополнительные параметры установки» предлагается использовать варианты по умолчанию, которые не включают Anaconda в переменную среды PATH и регистрируют Anaconda в качестве Python по умолчанию. Нажмите Установить, чтобы начать установку:

- Подождите, пока установщик скопирует файлы:

- Когда установка завершится, нажмите Далее :

- Нажмите « Готово», чтобы завершить установку и закрыть программу установки:

Поскольку Anaconda не была включена в переменную среды PATH, ее команды не будут работать в командной строке Windows по умолчанию. Чтобы использовать дистрибутив, вы должны запустить его собственную командную строку, что можно сделать, нажав на кнопку «Пуск» и на Anaconda Prompt под Anaconda3 (64 бит) :

Когда откроется приглашение, вы можете проверить, доступен ли Conda, запустив conda --version
:
(base) C:\Users\IEUser>conda --version
conda 4.5.11
Чтобы получить больше информации об установке, вы можете запустить conda info
:
(base) C:\Users\IEUser>conda info
active environment : base
active env location : C:\Users\IEUser\Miniconda3
shell level : 1
user config file : C:\Users\IEUser\.condarc
populated config files : C:\Users\IEUser\.condarc
conda version : 4.5.11
conda-build version : not installed
python version : 3.7.0.final.0
base environment : C:\Users\IEUser\Miniconda3 (writable)
channel URLs : https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/free/win-64
https://repo.anaconda.com/pkgs/free/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/pro/win-64
https://repo.anaconda.com/pkgs/pro/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : C:\Users\IEUser\Miniconda3\pkgs
C:\Users\IEUser\AppData\Local\conda\conda\pkgs
envs directories : C:\Users\IEUser\Miniconda3\envs
C:\Users\IEUser\AppData\Local\conda\conda\envs
C:\Users\IEUser\.conda\envs
platform : win-64
user-agent : conda/4.5.11 requests/2.19.1 CPython/3.7.0 Windows/10 Windows/10.0.17134
administrator : False
netrc file : None
offline mode : False
Теперь, когда у вас установлена Miniconda, давайте посмотрим, как работает среда Conda.
Понимание окружающей среды Conda
Когда вы начинаете разработку проекта с нуля, рекомендуется использовать последние версии библиотек, которые вам нужны. Однако при работе с чужим проектом, например, при запуске примера из Kaggle или Github , вам может потребоваться установить определенные версии пакетов или даже другую версию Python из-за проблем совместимости.
Эта проблема также может возникать при попытке запустить приложение, которое вы разработали давно, в котором используется определенная версия библиотеки, которая больше не работает с вашим приложением из-за обновлений.
Виртуальные среды являются решением этой проблемы. Используя их, можно создать несколько сред, каждая из которых имеет разные версии пакетов. Типичная установка Python включает Virtualenv , инструмент для создания изолированных виртуальных сред Python, широко используемый в сообществе Python.
Conda включает в себя собственный менеджер среды и предоставляет некоторые преимущества по сравнению с Virtualenv, особенно в отношении числовых приложений, таких как возможность управлять не-Python-зависимостями и возможность управлять различными версиями Python, что невозможно с Virtualenv. Кроме того, среды Conda полностью совместимы с пакетами Python по умолчанию, которые могут быть установлены с использованием pip
.
Установка Miniconda предоставляет Conda и корневую среду с установленной версией Python и некоторыми базовыми пакетами. Помимо этой корневой среды, можно настроить дополнительные среды, включая различные версии Python и пакеты.
Используя приглашение Anaconda, можно проверить доступные среды Conda, выполнив conda env list
:
(base) C:\Users\IEUser>conda env list
# conda environments:
#
base * C:\Users\IEUser\Miniconda3
Эта базовая среда является корневой средой, созданной установщиком Miniconda. Можно создать другую среду с именем otherenv
, запустив conda create --name otherenv
:
(base) C:\Users\IEUser>conda create --name otherenv
Solving environment: done
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3\envs\otherenv
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate otherenv
#
# To deactivate an active environment, use
#
# $ conda deactivate
Как сообщается после завершения процесса создания среды, можно активировать otherenv
среду, запустив ее conda activate otherenv
. Вы заметите, что среда изменилась, указав в скобках в начале подсказки:
(base) C:\Users\IEUser>conda activate otherenv
(otherenv) C:\Users\IEUser>
Вы можете открыть интерпретатор Python в этой среде, выполнив python
:
(otherenv) C:\Users\IEUser>python
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Среда включает в себя Python 3.7.0, ту же версию, включенную в корневую базовую среду. Чтобы выйти из интерпретатора Python, просто запустите quit()
:
>>> quit()
(otherenv) C:\Users\IEUser>
Чтобы деактивировать otherenv
среду и вернуться в корневую базовую среду, вы должны выполнить deactivate
:
(otherenv) C:\Users\IEUser>deactivate
(base) C:\Users\IEUser>
Как упоминалось ранее, Conda позволяет легко создавать среды с различными версиями Python, что не так просто для Virtualenv. Чтобы включить в среду другую версию Python, вы должны указать ее python=<version>
при запуске conda create
. Например, чтобы создать среду с именем py2
на Python 2.7, вам нужно выполнить conda create --name py2 python=2.7
:
(base) C:\Users\IEUser>conda create --name py2 python=2.7
Solving environment: done
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3\envs\py2
added / updated specs:
- python=2.7
The following NEW packages will be INSTALLED:
certifi: 2018.8.24-py27_1
pip: 10.0.1-py27_0
python: 2.7.15-he216670_0
setuptools: 40.2.0-py27_0
vc: 9-h7299396_1
vs2008_runtime: 9.00.30729.1-hfaea7d5_1
wheel: 0.31.1-py27_0
wincertstore: 0.2-py27hf04cefb_0
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate py2
#
# To deactivate an active environment, use
#
# $ conda deactivate
(base) C:\Users\IEUser>
Как показывают выходные данные conda create
, на этот раз было установлено несколько новых пакетов, поскольку новая среда использует Python 2. Вы можете проверить, действительно ли новая среда использует Python 2, активировав его и запустив интерпретатор Python:
(base) C:\Users\IEUser>conda activate py2
(py2) C:\Users\IEUser>python
Python 2.7.15 |Anaconda, Inc.| (default, May 1 2018, 18:37:09) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Теперь, если вы запустите conda env list
, вы должны увидеть две созданные среды, помимо корневой базовой среды:
(py2) C:\Users\IEUser>conda env list
# conda environments:
#
base C:\Users\IEUser\Miniconda3
otherenv C:\Users\IEUser\Miniconda3\envs\otherenv
py2 * C:\Users\IEUser\Miniconda3\envs\py2
(py2) C:\Users\IEUser>
В списке звездочка обозначает активированную среду. Можно удалить среду, запустив conda remove --name <environment name> --all
. Так как удалить активированную среду невозможно, сначала необходимо деактивировать py2
среду, чтобы удалить ее:
(py2) C:\Users\IEUser>deactivate
(base) C:\Users\IEUser>conda remove --name py2 --all
Remove all packages in environment C:\Users\IEUser\Miniconda3\envs\py2:
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3\envs\py2
The following packages will be REMOVED:
certifi: 2018.8.24-py27_1
pip: 10.0.1-py27_0
python: 2.7.15-he216670_0
setuptools: 40.2.0-py27_0
vc: 9-h7299396_1
vs2008_runtime: 9.00.30729.1-hfaea7d5_1
wheel: 0.31.1-py27_0
wincertstore: 0.2-py27hf04cefb_0
Proceed ([y]/n)? y
(base) C:\Users\IEUser>
Теперь, когда вы рассмотрели основы управления средами с помощью Conda, давайте посмотрим, как управлять пакетами в этих средах.
Понимание базового управления пакетами с Conda
В каждой среде пакеты программного обеспечения можно установить с помощью диспетчера пакетов Conda. Корневая базовая среда, созданная установщиком Miniconda, по умолчанию включает в себя некоторые пакеты, которые не являются частью стандартной библиотеки Python.
Установка по умолчанию включает минимальные пакеты, необходимые для использования Conda. Чтобы проверить список установленных пакетов в среде, вам просто нужно убедиться, что она активирована и запущена conda list
. В корневой среде по умолчанию установлены следующие пакеты:
(base) C:\Users\IEUser>conda list
# packages in environment at C:\Users\IEUser\Miniconda3:
#
# Name Version Build Channel
asn1crypto 0.24.0 py37_0
ca-certificates 2018.03.07 0
certifi 2018.8.24 py37_1
cffi 1.11.5 py37h74b6da3_1
chardet 3.0.4 py37_1
conda 4.5.11 py37_0
conda-env 2.6.0 1
console_shortcut 0.1.1 3
cryptography 2.3.1 py37h74b6da3_0
idna 2.7 py37_0
menuinst 1.4.14 py37hfa6e2cd_0
openssl 1.0.2p hfa6e2cd_0
pip 10.0.1 py37_0
pycosat 0.6.3 py37hfa6e2cd_0
pycparser 2.18 py37_1
pyopenssl 18.0.0 py37_0
pysocks 1.6.8 py37_0
python 3.7.0 hea74fb7_0
pywin32 223 py37hfa6e2cd_1
requests 2.19.1 py37_0
ruamel_yaml 0.15.46 py37hfa6e2cd_0
setuptools 40.2.0 py37_0
six 1.11.0 py37_1
urllib3 1.23 py37_0
vc 14 h0510ff6_3
vs2015_runtime 14.0.25123 3
wheel 0.31.1 py37_0
win_inet_pton 1.0.1 py37_1
wincertstore 0.2 py37_0
yaml 0.1.7 hc54c509_2
(base) C:\Users\IEUser>
Для управления пакетами вы также должны использовать Conda. Далее, давайте посмотрим, как искать, устанавливать, обновлять и удалять пакеты с помощью Conda.
Поиск и установка пакетов
Пакеты устанавливаются из репозиториев, которые Conda называет каналами , а некоторые каналы по умолчанию настраиваются установщиком. Для поиска конкретного пакета вы можете запустить conda search <package name>
. Например, вот как вы ищите keras
пакет (библиотека машинного обучения):
(base) C:\Users\IEUser>conda search keras
Loading channels: done
# Name Version Build Channel
keras 2.0.8 py35h15001cb_0 pkgs/main
keras 2.0.8 py36h65e7a35_0 pkgs/main
keras 2.1.2 py35_0 pkgs/main
keras 2.1.2 py36_0 pkgs/main
keras 2.1.3 py35_0 pkgs/main
keras 2.1.3 py36_0 pkgs/main
... (more)
Согласно предыдущему выводу, существуют разные версии пакета и разные сборки для каждой версии, например, для Python 3.5 и 3.6.
Предыдущий поиск показывает только точные совпадения для названных пакетов keras
. Чтобы выполнить более широкий поиск, включая все пакеты, содержащие keras
в своих именах, вы должны использовать подстановочный знак *
. Например, когда вы запускаете conda search *keras*
, вы получаете следующее:
(base) C:\Users\IEUser>conda search *keras*
Loading channels: done
# Name Version Build Channel
keras 2.0.8 py35h15001cb_0 pkgs/main
keras 2.0.8 py36h65e7a35_0 pkgs/main
keras 2.1.2 py35_0 pkgs/main
keras 2.1.2 py36_0 pkgs/main
keras 2.1.3 py35_0 pkgs/main
keras 2.1.3 py36_0 pkgs/main
... (more)
keras-applications 1.0.2 py35_0 pkgs/main
keras-applications 1.0.2 py36_0 pkgs/main
keras-applications 1.0.4 py35_0 pkgs/main
... (more)
keras-base 2.2.0 py35_0 pkgs/main
keras-base 2.2.0 py36_0 pkgs/main
... (more)
Как показывает предыдущий вывод, в каналах по умолчанию есть несколько других связанных с keras пакетов.
Чтобы установить пакет, вы должны запустить conda install <package name>
. По умолчанию самая новая версия пакета будет установлена в активной среде. Итак, давайте установим пакет keras
в среду, otherenv
которую вы уже создали:
(base) C:\Users\IEUser>conda activate otherenv
(otherenv) C:\Users\IEUser>conda install keras
Solving environment: done
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3\envs\otherenv
added / updated specs:
- keras
The following NEW packages will be INSTALLED:
_tflow_1100_select: 0.0.3-mkl
absl-py: 0.4.1-py36_0
astor: 0.7.1-py36_0
blas: 1.0-mkl
certifi: 2018.8.24-py36_1
gast: 0.2.0-py36_0
grpcio: 1.12.1-py36h1a1b453_0
h5py: 2.8.0-py36h3bdd7fb_2
hdf5: 1.10.2-hac2f561_1
icc_rt: 2017.0.4-h97af966_0
intel-openmp: 2018.0.3-0
keras: 2.2.2-0
keras-applications: 1.0.4-py36_1
keras-base: 2.2.2-py36_0
keras-preprocessing: 1.0.2-py36_1
libmklml: 2018.0.3-1
libprotobuf: 3.6.0-h1a1b453_0
markdown: 2.6.11-py36_0
mkl: 2019.0-117
mkl_fft: 1.0.4-py36h1e22a9b_1
mkl_random: 1.0.1-py36h77b88f5_1
numpy: 1.15.1-py36ha559c80_0
numpy-base: 1.15.1-py36h8128ebf_0
pip: 10.0.1-py36_0
protobuf: 3.6.0-py36he025d50_0
python: 3.6.6-hea74fb7_0
pyyaml: 3.13-py36hfa6e2cd_0
scipy: 1.1.0-py36h4f6bf74_1
setuptools: 40.2.0-py36_0
six: 1.11.0-py36_1
tensorboard: 1.10.0-py36he025d50_0
tensorflow: 1.10.0-mkl_py36hb361250_0
tensorflow-base: 1.10.0-mkl_py36h81393da_0
termcolor: 1.1.0-py36_1
vc: 14-h0510ff6_3
vs2013_runtime: 12.0.21005-1
vs2015_runtime: 14.0.25123-3
werkzeug: 0.14.1-py36_0
wheel: 0.31.1-py36_0
wincertstore: 0.2-py36h7fe50ca_0
yaml: 0.1.7-hc54c509_2
zlib: 1.2.11-h8395fce_2
Proceed ([y]/n)?
Conda управляет необходимыми зависимостями для пакета при его установке. Поскольку пакет keras
имеет много зависимостей, при установке Conda удается установить этот большой список пакетов.
Стоит отметить, что, поскольку keras
новейшая сборка пакета использует Python 3.6, а otherenv
среда была создана с использованием Python 3.7, python
версия пакета 3.6.6 была включена в качестве зависимости. После подтверждения установки вы можете проверить, что версия Python для otherenv
среды понижена до версии 3.6.6.
Иногда вы не хотите, чтобы пакеты были понижены, и было бы лучше просто создать новую среду с необходимой версией Python. Чтобы проверить список новых пакетов, обновлений и версий, необходимых для пакета без его установки, следует использовать параметр --dry-run
. Например, чтобы проверить пакеты, которые будут изменены при установке пакета keras
, вы должны выполнить следующее:
(otherenv) C:\Users\IEUser>conda install keras --dry-run
Однако, если необходимо, можно изменить Python по умолчанию для среды Conda, установив определенную версию пакета python
. Чтобы продемонстрировать это, давайте создадим новую среду под названием envpython
:
(otherenv) C:\Users\IEUser>conda create --name envpython
Solving environment: done
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3\envs\envpython
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate envpython
#
# To deactivate an active environment, use
#
# $ conda deactivate
Как вы видели ранее, поскольку корневая базовая среда использует Python 3.7, envpython
создается в том же варианте Python:
(base) C:\Users\IEUser>conda activate envpython
(envpython) C:\Users\IEUser>python
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
(envpython) C:\Users\IEUser>
Чтобы установить конкретную версию пакета, вы можете запустить conda install <package name>=<version>
. Например, вот как вы устанавливаете Python 3.6 в envpython
среде:
(envpython) C:\Users\IEUser>conda install python=3.6
Solving environment: done
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3\envs\envpython
added / updated specs:
- python=3.6
The following NEW packages will be INSTALLED:
certifi: 2018.8.24-py36_1
pip: 10.0.1-py36_0
python: 3.6.6-hea74fb7_0
setuptools: 40.2.0-py36_0
vc: 14-h0510ff6_3
vs2015_runtime: 14.0.25123-3
wheel: 0.31.1-py36_0
wincertstore: 0.2-py36h7fe50ca_0
Proceed ([y]/n)?
В случае, если вам нужно установить более одного пакета в среде, можно запустить conda install
только один раз, передавая имена пакетов. Чтобы проиллюстрировать это, давайте установим numpy
, scipy
и matplotlib
, основные пакеты для численных вычислений в корневой базовой среде:
(envpython) C:\Users\IEUser>deactivate
(base) C:\Users\IEUser>conda install numpy scipy matplotlib
Solving environment: done
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3
added / updated specs:
- matplotlib
- numpy
- scipy
The following packages will be downloaded:
package | build
---------------------------|-----------------
libpng-1.6.34 | h79bbb47_0 1.3 MB
mkl_random-1.0.1 | py37h77b88f5_1 267 KB
intel-openmp-2019.0 | 117 1.7 MB
qt-5.9.6 | vc14h62aca36_0 92.5 MB
matplotlib-2.2.3 | py37hd159220_0 6.5 MB
tornado-5.1 | py37hfa6e2cd_0 668 KB
pyqt-5.9.2 | py37ha878b3d_0 4.6 MB
pytz-2018.5 | py37_0 232 KB
scipy-1.1.0 | py37h4f6bf74_1 13.5 MB
jpeg-9b | hb83a4c4_2 313 KB
python-dateutil-2.7.3 | py37_0 260 KB
numpy-base-1.15.1 | py37h8128ebf_0 3.9 MB
numpy-1.15.1 | py37ha559c80_0 37 KB
mkl_fft-1.0.4 | py37h1e22a9b_1 120 KB
kiwisolver-1.0.1 | py37h6538335_0 61 KB
pyparsing-2.2.0 | py37_1 96 KB
cycler-0.10.0 | py37_0 13 KB
freetype-2.9.1 | ha9979f8_1 470 KB
icu-58.2 | ha66f8fd_1 21.9 MB
sqlite-3.24.0 | h7602738_0 899 KB
sip-4.19.12 | py37h6538335_0 283 KB
------------------------------------------------------------
Total: 149.5 MB
The following NEW packages will be INSTALLED:
blas: 1.0-mkl
cycler: 0.10.0-py37_0
freetype: 2.9.1-ha9979f8_1
icc_rt: 2017.0.4-h97af966_0
icu: 58.2-ha66f8fd_1
intel-openmp: 2019.0-117
jpeg: 9b-hb83a4c4_2
kiwisolver: 1.0.1-py37h6538335_0
libpng: 1.6.34-h79bbb47_0
matplotlib: 2.2.3-py37hd159220_0
mkl: 2019.0-117
mkl_fft: 1.0.4-py37h1e22a9b_1
mkl_random: 1.0.1-py37h77b88f5_1
numpy: 1.15.1-py37ha559c80_0
numpy-base: 1.15.1-py37h8128ebf_0
pyparsing: 2.2.0-py37_1
pyqt: 5.9.2-py37ha878b3d_0
python-dateutil: 2.7.3-py37_0
pytz: 2018.5-py37_0
qt: 5.9.6-vc14h62aca36_0
scipy: 1.1.0-py37h4f6bf74_1
sip: 4.19.12-py37h6538335_0
sqlite: 3.24.0-h7602738_0
tornado: 5.1-py37hfa6e2cd_0
zlib: 1.2.11-h8395fce_2
Proceed ([y]/n)?
Теперь, когда вы рассмотрели, как искать и устанавливать пакеты, давайте посмотрим, как обновить и удалить их с помощью Conda.
Обновление и удаление пакетов
Иногда, когда выпускаются новые пакеты, вам необходимо обновить их. Для этого вы можете бежать conda update <package name>
. Если вы хотите обновить все пакеты в одной среде, вам следует активировать среду и запустить conda update --all
.
Чтобы удалить пакет, вы можете запустить conda remove <package name>
. Например, вот как вы удаляете numpy
из корневой базовой среды:
(base) C:\Users\IEUser>conda remove numpy
Solving environment: done
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3
removed specs:
- numpy
The following packages will be REMOVED:
matplotlib: 2.2.3-py37hd159220_0
mkl_fft: 1.0.4-py37h1e22a9b_1
mkl_random: 1.0.1-py37h77b88f5_1
numpy: 1.15.1-py37ha559c80_0
scipy: 1.1.0-py37h4f6bf74_1
Proceed ([y]/n)?
Стоит отметить, что при удалении пакета все пакеты, которые зависят от него, также удаляются.
Использование каналов
Иногда вы не можете найти пакеты, которые хотите установить, на каналах по умолчанию, настроенных установщиком. Например, вот как вы устанавливаете pytorch
другой пакет машинного обучения:
(base) C:\Users\IEUser>conda search pytorch
Loading channels: done
PackagesNotFoundError: The following packages are not available from current channels:
- pytorch
Current channels:
- https://repo.anaconda.com/pkgs/main/win-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/free/win-64
- https://repo.anaconda.com/pkgs/free/noarch
- https://repo.anaconda.com/pkgs/r/win-64
- https://repo.anaconda.com/pkgs/r/noarch
- https://repo.anaconda.com/pkgs/pro/win-64
- https://repo.anaconda.com/pkgs/pro/noarch
- https://repo.anaconda.com/pkgs/msys2/win-64
- https://repo.anaconda.com/pkgs/msys2/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
В этом случае вы можете найти пакет здесь . Если вы ищете pytorch
, вы получите следующие результаты:

На канале pytorch
есть пакет с именем pytorch
version 0.4.1
. Чтобы установить пакет из определенного канала, вы можете использовать -c <channel>
параметр с conda install
:
(base) C:\Users\IEUser>conda install -c pytorch pytorch
Solving environment: done
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3
added / updated specs:
- pytorch
The following packages will be downloaded:
package | build
---------------------------|-----------------
pytorch-0.4.1 |py37_cuda90_cudnn7he774522_1 590.4 MB pytorch
The following NEW packages will be INSTALLED:
pytorch: 0.4.1-py37_cuda90_cudnn7he774522_1 pytorch
Proceed ([y]/n)?
Кроме того, вы можете добавить канал, чтобы Conda использовала его для поиска пакетов для установки. Для просмотра списка используемых каналов вы можете запустить conda config --get channels
:
(base) C:\Users\IEUser>conda config --get channels
--add channels 'defaults' # lowest priority
(base) C:\Users\IEUser>
Установщик Miniconda включает только defaults
каналы. Если включено больше каналов, необходимо установить их приоритет, чтобы определить, с какого канала будет установлен пакет, если он доступен из более чем одного канала.
Чтобы добавить канал с самым низким приоритетом в список, вы должны запустить conda config --append channels <channel name>
. Чтобы добавить канал с наивысшим приоритетом в список, вы должны запустить conda config --prepend channels <channel name>
. Рекомендуется добавлять новые каналы с низким приоритетом, чтобы продолжать использовать каналы по умолчанию раньше других. Итак, в качестве альтернативы, вы можете установить pytorch
, добавив pytorch
канал и запустив conda install pytorch
:
(base) C:\Users\IEUser>conda config --append channels pytorch
(base) C:\Users\IEUser>conda config --get channels
--add channels 'pytorch' # lowest priority
--add channels 'defaults' # highest priority
(base) C:\Users\IEUser>conda install pytorch
Solving environment: done
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3
added / updated specs:
- pytorch
The following packages will be downloaded:
package | build
---------------------------|-----------------
pytorch-0.4.1 |py37_cuda90_cudnn7he774522_1 590.4 MB pytorch
The following NEW packages will be INSTALLED:
pytorch: 0.4.1-py37_cuda90_cudnn7he774522_1 pytorch
Proceed ([y]/n)?
Не все пакеты доступны на каналах Conda. Однако это не проблема, так как вы также можете использовать pip
для установки пакетов в среде Conda. Посмотрим, как это сделать.
Использование pip
внутри среды Conda
Иногда вам могут понадобиться чистые пакеты Python, и, как правило, эти пакеты не доступны на каналах Conda. Например, если вы ищете unipath
пакет для обработки путей к файлам в Python, Conda не сможет его найти.
Вы можете найти пакет здесь и использовать другой канал для его установки. Тем не менее, поскольку unipath
это чистый пакет Python, вы можете использовать его pip
для установки, как при обычной установке Python. Разница лишь в том, что вы должны использовать pip
установленный пакет Conda pip
. Чтобы проиллюстрировать это, давайте создадим новую среду под названием newproject
. Как упоминалось ранее, вы можете сделать это, запустив conda create
:
conda create --name newproject
Далее, чтобы pip
установить, вы должны активировать среду и установить пакет Conda pip
:
(base) C:\Users\IEUser>conda activate newproject
(newproject) C:\Users\IEUser>conda install pip
Solving environment: done
## Package Plan ##
environment location: C:\Users\IEUser\Miniconda3\envs\newproject
added / updated specs:
- pip
The following NEW packages will be INSTALLED:
certifi: 2018.8.24-py37_1
pip: 10.0.1-py37_0
python: 3.7.0-hea74fb7_0
setuptools: 40.2.0-py37_0
vc: 14-h0510ff6_3
vs2015_runtime: 14.0.25123-3
wheel: 0.31.1-py37_0
wincertstore: 0.2-py37_0
Proceed ([y]/n)?
Наконец, используйте pip
для установки пакета unipath
:
(newproject) C:\Users\IEUser>pip install unipath
Collecting unipath
Installing collected packages: unipath
Successfully installed unipath-1.1
You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
(newproject) C:\Users\IEUser>
После установки вы можете просмотреть список установленных пакетов conda list
и проверить, что Unipath
было установлено с помощью pip:
(newproject) C:\Users\IEUser>conda list
# packages in environment at C:\Users\IEUser\Miniconda3\envs\newproject:
#
# Name Version Build Channel
certifi 2018.8.24 py37_1
pip 10.0.1 py37_0
python 3.7.0 hea74fb7_0
setuptools 40.2.0 py37_0
Unipath 1.1 <pip>
vc 14 h0510ff6_3
vs2015_runtime 14.0.25123 3
wheel 0.31.1 py37_0
wincertstore 0.2 py37_0
(newproject) C:\Users\IEUser>
Также возможно установить пакеты из системы контроля версий (VCS), используя pip
. Например, давайте установим supervisor
версию 4.0.0dev0, доступную в репозитории Git. Поскольку Git не установлен в newproject
среде, вы должны сначала установить его:
(newproject) C:\Users\IEUser> conda install git
Затем установите supervisor
, используя pip
для установки из репозитория Git:
(newproject) pip install -e git://github.com/Supervisor/supervisor@abef0a2be35f4aae4a4edeceadb7a213b729ef8d#egg=supervisor
После завершения установки вы можете увидеть, что supervisor
указано в списке установленных пакетов:
(newproject) C:\Users\IEUser>conda list
#
# Name Version Build Channel
certifi 2018.8.24 py37_1
git 2.18.0 h6bb4b03_0
meld3 1.0.2 <pip>
pip 10.0.1 py37_0
python 3.7.0 hea74fb7_0
setuptools 40.2.0 py37_0
supervisor 4.0.0.dev0 <pip>
... (more)
Теперь, когда вы знакомы с основами использования сред и управления пакетами с помощью Conda, давайте создадим простой пример машинного обучения для решения классической задачи с использованием нейронной сети.
Простой пример машинного обучения
В этом разделе вы настроите среду с помощью Conda и научите нейронную сеть функционировать как ворота XOR .
В вентиле XOR реализована цифровая логическая операция «ИЛИ» , которая широко используется в цифровых системах. Он принимает два цифровых входа, которые могут быть равны 0
, представляя цифровое ложное значение или 1
, представляя цифровое истинное значение, и выводит 1
( true ), если входы различны, или 0
( false ), если входы равны. В следующей таблице (называемой таблицей истинности в терминологии цифровых систем) суммируется операция шлюза XOR:
Вход А | Вход B | Выход: XOR B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Операция XOR может быть интерпретирована как проблема классификации, учитывая, что она принимает два входа и должна классифицировать их в один из двух классов, представленных 0
или 1
, в зависимости от того, равны ли входы друг другу или отличаются друг от друга.
Он обычно используется в качестве первого примера для обучения нейронной сети, поскольку он прост и в то же время требует нелинейного классификатора, такого как нейронная сеть. Нейронная сеть будет использовать только данные из таблицы истинности, не зная, откуда она взялась, чтобы «изучить» операцию, выполняемую шлюзом XOR.
Чтобы реализовать нейронную сеть, давайте создадим новую среду Conda с именем nnxor
:
(base) C:\Users\IEUser>conda create nnxor
Затем активируем его и установим пакет keras
:
(base) C:\Users\IEUser>conda activate nnxor
(nnxor) C:\Users\IEUser>conda install keras
keras
это высокоуровневый API, который делает простые в реализации нейронные сети поверх известных библиотек машинного обучения, таких как TensorFlow .
Вы научите следующую нейронную сеть действовать как ворота XOR:

Сеть принимает два входа, A и B , и передает их двум нейронам, представленным большими кругами. Затем он принимает выходные данные этих двух нейронов и передает их в выходной нейрон, который должен обеспечить классификацию в соответствии с таблицей истинности XOR.
Вкратце, тренировочный процесс состоит из корректировки значений весов от w_1 до w_6 , чтобы выходные данные соответствовали таблице истинности XOR. Для этого будут поданы входные примеры, по одному, выходные данные будут рассчитываться в соответствии с текущими значениями весов и, сравнивая выходные данные с желаемым выходным значением, заданным таблицей истинности, значения весовых коэффициентов будут настраиваться в пошаговом процессе.
Чтобы организовать проект, вы создадите папку с именем nnxor
в папке пользователя Windows ( C:\Users\IEUser
) с файлом с именем nnxor.py
для хранения программы Python для реализации нейронной сети:

В этом nnxor.py
файле вы определите сеть, проведете обучение и протестируете ее:
import numpy as np
np.random.seed(444)
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.optimizers import SGD
X = np.array([[0, 0],
[0, 1],
[1, 0],
[1, 1]])
y = np.array([[0], [1], [1], [0]])
model = Sequential()
model.add(Dense(2, input_dim=2))
model.add(Activation('sigmoid'))
model.add(Dense(1))
model.add(Activation('sigmoid'))
sgd = SGD(lr=0.1)
model.compile(loss='mean_squared_error', optimizer=sgd)
model.fit(X, y, batch_size=1, epochs=5000)
if __name__ == '__main__':
print(model.predict(X))
Сначала вы импортируете numpy
, инициализируете случайное начальное число, чтобы вы могли воспроизвести те же результаты при повторном запуске программы, и импортировали keras
объекты, которые вы будете использовать для построения нейронной сети.
Затем вы определяете X
массив, содержащий 4 возможных набора входов AB для операции XOR, и y
массив, содержащий выходные данные для каждого из наборов входов, определенных в X
.
Следующие пять строк определяют нейронную сеть. Sequential()
Модель является одной из моделей , предусмотренных keras
для определения нейронной сети, в которой слои сетей определяются последовательным образом. Затем вы определяете первый слой нейронов, состоящий из двух нейронов, питаемых двумя входами, определяя их функцию активации как сигмовидную функцию в последовательности. Наконец, вы определяете выходной слой, состоящий из одного нейрона с той же функцией активации.
Следующие две строки определяют детали обучения сети. Чтобы настроить вес сети, вы будете использовать Стохастический градиентный спуск (SGD) с скоростью обучения, равной 0.1
, и вы будете использовать среднеквадратичную ошибку в качестве функции потерь, которую нужно минимизировать.
Наконец, вы выполняете обучение, выполняя fit()
метод, используя X
и в y
качестве примеров обучения и обновляя веса после того, как каждый пример обучения подается в сеть ( batch_size=1
). Число epochs
представляет количество раз, которое весь обучающий набор будет использоваться для обучения нейронной сети.
В этом случае вы повторяете обучение 5000 раз, используя обучающий набор, содержащий 4 примера ввода-вывода. По умолчанию каждый раз, когда используется обучающий набор, примеры обучения перемешиваются.
В последней строке после завершения процесса обучения вы выводите прогнозные значения для 4 возможных входных примеров.
Запустив этот сценарий, вы увидите эволюцию процесса обучения и повышение производительности по мере поступления в сеть новых примеров обучения:
(nnxor) C:\Users\IEUser>cd nnxor
(nnxor) C:\Users\IEUser\nnxor>python nnxor.py
Using TensorFlow backend.
Epoch 1/5000
2018-09-16 09:49:05.987096: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2018-09-16 09:49:05.993128: I tensorflow/core/common_runtime/process_util.cc:69] Creating new thread pool with default inter op setting: 2. Tune using inter_op_parallelism_threads for best performance.
4/4 [==============================] - 0s 39ms/step - loss: 0.2565
Epoch 2/5000
4/4 [==============================] - 0s 0us/step - loss: 0.2566
Epoch 3/5000
4/4 [==============================] - 0s 0us/step - loss: 0.2566
Epoch 4/5000
4/4 [==============================] - 0s 0us/step - loss: 0.2566
Epoch 5/5000
4/4 [==============================] - 0s 0us/step - loss: 0.2566
Epoch 6/5000
4/4 [==============================] - 0s 0us/step - loss: 0.2566
После окончания обучения вы можете проверить прогнозы, которые дает сеть для возможных входных значений:
Epoch 4997/5000
4/4 [==============================] - 0s 0us/step - loss: 0.0034
Epoch 4998/5000
4/4 [==============================] - 0s 0us/step - loss: 0.0034
Epoch 4999/5000
4/4 [==============================] - 0s 0us/step - loss: 0.0034
Epoch 5000/5000
4/4 [==============================] - 0s 0us/step - loss: 0.0034
[[0.0587215 ]
[0.9468337 ]
[0.9323144 ]
[0.05158457]]
Как вы определили X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
, ожидаемые выходные значения 0
, 1
, 1
и 0
, что согласуется с предсказанными выходами сети, учитывая вы должны округлить их , чтобы получить двоичные значения.
Куда пойти отсюда
Приложения для обработки данных и машинного обучения появляются в самых разных областях, привлекая все больше людей. Однако настройка среды для численных вычислений может быть сложной задачей, и часто пользователи сталкиваются с проблемами на семинарах по науке о данных, особенно при использовании Windows.
В этой статье вы рассмотрели основы настройки среды численных вычислений Python на компьютере с Windows с помощью дистрибутива Anaconda Python.
Бесплатный бонус: нажмите здесь, чтобы получить доступ к шпаргалке Conda с удобными примерами использования для управления средой и пакетами Python.
Теперь, когда у вас есть рабочая среда, пришло время начать работу с некоторыми приложениями. Python – один из наиболее используемых языков для науки о данных и машинного обучения, а Anaconda – один из самых популярных дистрибутивов, используемых в различных компаниях и исследовательских лабораториях. Он предоставляет несколько пакетов для установки библиотек, на которые опирается Python для сбора, обработки, обработки и визуализации данных.