Настраиваем Python для машинного обучения на Windows
Машинное обучение − это просто. Но знаете ли вы, что можно использовать Python для машинного обучения? Вот инструкция по настройке для Windows.
Люди привыкли выполнять большую часть работы автономно. В этой статье рассказываем о возможностях языка Python для машинного обучения на Windows, описание дистрибутива Anaconda, процесс его установки и создание нейронной сети.
Anaconda и Conda
Используемый в Python pip не идеален. Для оптимизации работы был выпущен дистрибутив Anaconda и система управления Conda, которые могут помочь в настройке Python для машинного обучения.
Хотя Conda тесно связана с Anaconda, эти проекты отличаются своими функциями. Anaconda − дистрибутив ПО в экосистеме PyData, которая включает сам язык программирования Python, а также двоичные файлы для нескольких сторонних проектов. Существует и Miniconda − версия с минимальным исходным пакетом. Conda − система управления пакетами, которая может быть установлена без Anaconda или Miniconda. Она способна решать проблемы внешних зависимостей, путем загрузки скомпилированных версий ПО. Кроме того, Conda является менеджером среды. С ее помощью вы можете настроить отдельную среду. Сейчас мы рассмотрим процесс установки Miniconda.
Установка дистрибутива Miniconda
Скачайте и установите необходимую версию Miniconda на ПК. При установке продвинутых настроек снимите галочку с первого пункта.
Поскольку при установке не был выбран пункт «Add Anaconda to my PATH environment variable», то команды Anaconda не будут работать в командной строке по умолчанию. Для их использования следует запустить дистрибутив отдельно. Когда он откроется, проверьте доступность 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
Понимание среды Conda
При работе с чужими проектами у вас может возникнуть потребность в установке определенных версий пакетов. Виртуальные среды − решение проблемы. Они позволяют создать несколько сред, каждая из которых имеет разные версии пакетов. Базовая настройка Python для машинного обучения включает в себя Virtualenv, инструмент для создания изолированных сред.
Conda включает собственный менеджер среды и дает некоторые преимущества относительно Virtualenv. Кроме того, среды Conda полностью совместимы с базовыми пакетами языка Python, которые могут быть установлены с помощью pip.
Используя Anaconda, можно проверить доступные среды Conda, запустив сonda env list:
(base) C:\Users\IEUser>conda env list base * C:\Users\IEUser\Miniconda3
Базовая среда − корневая среда, созданная Miniconda. Можно создать еще одну, под названием otherenv, путем запуска conda create --name otherenv:
(base) C:\Users\IEUser>conda create --name otherenv Solving environment: done environment location: C:\Users\IEUser\Miniconda3\envs\otherenv Proceed ([y]/n)? y Preparing transaction: done Verifying transaction: done Executing transaction: done
После завершения процесса создания среды, можно ее активировать, запустив conda activate otherenv. Заметить изменения среды можно, посмотрев на скобки в начале строки:
(base) C:\Users\IEUser>conda activate otherenv (otherenv) C:\Users\IEUser>
Откройте Python interpreter в этой среде, запустив 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, ту же версию, что включена в корневую среду. Чтобы выйти, запустите quit():
>>> quit() (otherenv) C:\Users\IEUser>
Чтобы отключить среду otherenv и вернуться в корневую среду, пропишите deactivate:
(otherenv) C:\Users\IEUser>deactivate (base) C:\Users\IEUser>
Conda позволяет легко создавать среды с различными версиями 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
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
(base) C:\Users\IEUser>
Как видно из вывода conda create, были установлены новые пакеты, так как среда использует Python 2.7. Можно проверить, что среда действительно использует его, активировав Python interpreter:
(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 base C:\Users\IEUser\Miniconda3 otherenv C:\Users\IEUser\Miniconda3\envs\otherenv py2 * C:\Users\IEUser\Miniconda3\envs\py2 (py2) C:\Users\IEUser>
Asterisk указывает на активную среду. Ее можно удалить, выполнив команду conda remove --name <environment name> --all:
(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:
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. Корневая база Miniconda включает в себя базовые пакеты, которые не являются частью стандартной библиотеки Python для настройки машинного обучения.
Установка по умолчанию включает минимум пакетов Conda. Чтобы проверить список установленных пакетов, нужно убедиться, что она активна, и запустить conda list. В корневой среде устанавливаются эти пакеты:
(base) C:\Users\IEUser>conda list 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>
Поиск и установка пакетов
Пакеты устанавливаются из репозиториев, называемых channels by Conda. Чтобы выполнить поиск определенного пакета, запустите поиск <package name>. Вот так вы будете искать keras:
(base) C:\Users\IEUser>conda search keras Loading channels: done 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. Чтобы выполнить более широкий поиск, используйте *. Например, при запуске conda search *keras*, вы получите следующее:
(base) C:\Users\IEUser>conda search *keras* Loading channels: done 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
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:
(otherenv) C:\Users\IEUser>conda install keras --dry-run
При необходимости можно изменить базовую версию Python среды Conda, установив определенную версию пакета python. Создайте новую среду под названием envpython:
(otherenv) C:\Users\IEUser>conda create --name envpython Solving environment: done environment location: C:\Users\IEUser\Miniconda3\envs\envpython Proceed ([y]/n)? y Preparing transaction: done Verifying transaction: done Executing transaction: done
Поскольку корневая среда использует Python 3,7, создается envpython с этой же версией.
(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
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
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 update <package name>. Если вы хотите обновить все пакеты, активируйте среду и запустите conda update --all.
Чтобы удалить пакеты, пропишите conda remove <package name>, но помните, что при удалении пакета, все зависимые от него тоже удалятся:
(base) C:\Users\IEUser>conda remove numpy
Solving environment: done
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 на сайте anaconda, вы получите следующие результаты:
В канале pytorch имеется пакет под названием pytorch с версией 0.4.1. Чтобы установить пакет с определенного канала, используйте параметр -c <chanel> вместе с conda install:
(base) C:\Users\IEUser>conda install -c pytorch pytorch
Solving environment: done
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' (base) C:\Users\IEUser>
Когда у вас появится множество каналов,нужно будет выставить приоритет. Чтобы добавить канал с наименьшим приоритетом в список, запустите 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
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)?
Использование Pip в среде Conda
Иногда при настройке Python для машинного обучения вам могут понадобиться чистые пакеты Python, которые будут недоступны на каналах Conda. Например, Unipath.
Вы сможете найти пакет, используя другой канал. Но так как unipath − чистый пакет Python, то можно использовать pip для его установки. Следует использовать pip, установленный conda create:
conda create --name newproject
Чтобы установить pip, активируйте среду и установите пакет Conda:
(base) C:\Users\IEUser>conda activate newproject
(newproject) C:\Users\IEUser>conda install pip
Solving environment: done
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 был установлен:
(newproject) C:\Users\IEUser>conda list 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>
Также можно использовать пакеты из системы VSC с помощью pip. Чтобы активировать supervisor, version 4.0.0dev0. доступный в репозитории Git, для начала установите последний:
(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 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)
Простой пример машинного обучения
XOR gate − ещё один момент, который стоит знать в процессе настройки Python для машинного обучения: используя Conda обучите нейронную сеть функционировать как XOR gate
XOR gate реализуют операцию OR. Требуется два цифровых входа, равные 0 или 1. И вывода, 1 (true) и 0 (false). Таблица ниже суммирует операции XOR gate:
Операцию XOR можно интерпретировать как classification problem, потому что она принимает два входа и должна классифицировать их как 0 или 1 в зависимости от того, равны они друг другу или нет. Именно этот пример обычно используется в качестве первого случая обучения нейронной сети, поскольку он прост, но в то же время требует нелинейного классификатора, такого как нейронная сеть. Чтобы реализовать нейронную сеть, создайте среду 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 gate:
Сеть берет два входа (A, B) и передает их двум нейронам, показанными большими кругами. Затем она принимает входные данные этих нейронов и подает их на выходной нейрон, который должен обеспечивать классификацию в соответствии с таблицей XOR.
Процесс обучения состоит в том, чтобы настроить значения w_1 до w_6, чтобы выход соответствовал таблице. Для этого входные примеры начнут подаваться по одному, вывод станет рассчитываться с текущими значениями, и, сравнивая вывод с желаемым, значения будут корректироваться.
Для этого создайте папку с именем nnxor в директории (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, инициализируйте случайный seed, чтобы можно было воспроизвести те же результаты при повторном запуске программы и импортировать keras, используемый в сети.
Определите массив X, содержащий 4 возможных набора A-B входов, и массив y, содержащий выходные данные.
Следующие пять строк сформируют нейронную сеть. Модель Sequental() − одна из моделей keras для определения нейронной сети. Определите первый слой из двух входных нейронов, определив их функцию активации в качестве sigmond function. Затем обозначьте входной слой их одного нейрона с той же функцией активации.
Следующие две строки определяют детали обучения сети. Чтобы настроить параметры, используйте Stochastic Gradient Descent с оптимальной скоростью обучения, равной 0,1. Наконец, выполните обучение с помощью fit(), используя X и Y в качестве примеров обучения, после того, как каждый пример будет загружен в сеть (batch_size=1). Число epochs представляет собой количество попыток обучения сети.
В этом случае вы повторяете операцию 5500 раз, используя обучающий набор, содержащий 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, что согласуется с прогнозами сети.
Машинное обучение применяется в различных областях, охватывая все большую аудиторию. Тем не менее, создание среды может быть сложней задачей. В этой статье вы узнали об основах создания среды Python на Windows с использованием Anaconda. Теперь, когда у вас есть основа, пришло время начать работу с настоящими приложениями.
Понравилась статья о настройке Python для машинного обучения? Книги по Python и другие материалы:
- Работа с документацией в Python: поиск информации и соглашения
- Машинное обучение за год
- Машинное обучение для самых маленьких
- 13 лучших книг по Python для начинающих и продолжающих
Источник: Настройка Python для машинного обучения on Realpython