Настраиваем Python для машинного обучения на Windows

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Машинное обучение ? это просто. Но знаете ли вы, что можно использовать Python для машинного обучения? Вот инструкция по настройке для Windows.

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

Используемый в Python pip не идеален. Для оптимизации работы был выпущен дистрибутив Anaconda и система управления Conda, которые могут помочь в настройке Python для машинного обучения.

Хотя Conda тесно связана с Anaconda, эти проекты отличаются своими функциями. Anaconda ? дистрибутив ПО в экосистеме PyData, которая включает сам Python, а также двоичные файлы для нескольких сторонних проектов. Существует и Miniconda ? версия с минимальным исходным пакетом. Conda ? система управления пакетами, которая может быть установлена без Anaconda или Miniconda. Она способна решать проблемы внешних зависимостей, путем загрузки скомпилированных версий ПО. Кроме того, Conda является менеджером среды. С ее помощью вы можете настроить отдельную среду. Сейчас мы рассмотрим процесс установки Miniconda.

Скачайте и установите необходимую версию Miniconda на ПК. При установке продвинутых настроек снимите галочку с первого пункта.

Поскольку при установке не был выбран пункт «Add Anaconda to my PATH environment variable», то команды Anaconda не будут работать в командной строке по умолчанию. Для их использования следует запустить дистрибутив отдельно. Когда он откроется, проверьте доступность Conda, запустив conda —version:

1

2

(base)C:UsersIEUser>conda--version

conda4.5.11

Чтобы получить больше информации об установке, запустите conda info:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

(base)C:UsersIEUser>conda info

active environment:base

active env location:C:UsersIEUserMiniconda3

shell level:1

user config file:C:UsersIEUser.condarc

populated config files:C:UsersIEUser.condarc

conda version:4.5.11

conda-build version:notinstalled

python version:3.7.0.final.0

base environment:C:UsersIEUserMiniconda3(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

packagecache:C:UsersIEUserMiniconda3pkgs

C:UsersIEUserAppDataLocalcondacondapkgs

envs directories:C:UsersIEUserMiniconda3envs

C:UsersIEUserAppDataLocalcondacondaenvs

C:UsersIEUser.condaenvs

platform:win-64

user-agent:conda/4.5.11requests/2.19.1CPython/3.7.0Windows/10Windows/10.0.17134

administrator:False

netrc file:None

offline mode:False

При работе с чужими проектами у вас может возникнуть потребность в установке определенных версий пакетов. Виртуальные среды ? решение проблемы. Они позволяют создать несколько сред, каждая из которых имеет разные версии пакетов. Базовая настройка Python для машинного обучения включает в себя Virtualenv, инструмент для создания изолированных сред.

Conda включает собственный менеджер среды и дает некоторые преимущества относительно Virtualenv. Кроме того, среды Conda полностью совместимы с базовыми пакетами Python, которые могут быть установлены с помощью pip.

Используя Anaconda, можно проверить доступные среды Conda, запустив сonda env list:

1

2

(base)C:UsersIEUser>conda env list

base                  *C:UsersIEUserMiniconda3

Базовая среда ? корневая среда, созданная Miniconda. Можно создать еще одну, под названием otherenv, путем запуска conda create —name otherenv:

1

2

3

4

5

6

7

8

9

10

11

(base)C:UsersIEUser>conda create--name otherenv

Solving environment:done

environment location:C:UsersIEUserMiniconda3envsotherenv

Proceed([y]/n)?y

Preparing transaction:done

Verifying transaction:done

Executing transaction:done

После завершения процесса создания среды, можно ее активировать, запустив conda activate otherenv. Заметить изменения среды можно, посмотрев на скобки в начале строки:

1

2

3

(base)C:UsersIEUser>conda activate otherenv

(otherenv)C:UsersIEUser>

Откройте Python interpreter в этой среде, запустив python:

1

2

3

4

(otherenv)C:UsersIEUser>python

Python3.7.0(default,Jun282018,08:04:48)[MSCv.191264bit(AMD64)]::Anaconda,Inc.on win32

Type"help","copyright","credits"or"license"formore information.

>>>

Среда включает в себя Python 3.7.0, ту же версию, что включена в корневую среду. Чтобы выйти, запустите quit():

1

2

3

>>>quit()

(otherenv)C:UsersIEUser>

Чтобы отключить среду otherenv и вернуться в корневую среду, пропишите deactivate:

1

2

3

(otherenv)C:UsersIEUser>deactivate

(base)C:UsersIEUser>

Conda позволяет легко создавать среды с различными версиями Python. Чтобы включить другую версию в среду, укажите ее, используя python =<version> при запуске conda create. Чтобы создать среду с именем py2 с Python 2.7, запустите conda create —name py2 python=2.7:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

(base)C:UsersIEUser>conda create--name py2 python=2.7

Solving environment:done

environment location:C:UsersIEUserMiniconda3envspy2

added/updated specs:

-python=2.7

The following NEWpackages 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:UsersIEUser>

Как видно из вывода conda create, были установлены новые пакеты, так как среда использует Python 2.7. Можно проверить, что среда действительно использует его, активировав Python interpreter:

1

2

3

4

5

6

(base)C:UsersIEUser>conda activate py2

(py2)C:UsersIEUser>python

Python2.7.15|Anaconda,Inc.|(default,May12018,18:37:09)[MSCv.150064bit(AMD64)]on win32

Type"help","copyright","credits"or"license"formore information.

>>>

Теперь, если вы запустите conda env list, можно увидеть две среды, которые были созданы вами:

1

2

3

4

5

6

7

8

(py2)C:UsersIEUser>conda env list

baseC:UsersIEUserMiniconda3

otherenvC:UsersIEUserMiniconda3envsotherenv

py2               *C:UsersIEUserMiniconda3envspy2

(py2)C:UsersIEUser>

Asterisk указывает на активную среду. Ее можно удалить, выполнив команду conda remove —name <environment name> —all:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

(py2)C:UsersIEUser>deactivate

(base)C:UsersIEUser>conda remove--name py2--all

Remove all packages inenvironmentC:UsersIEUserMiniconda3envspy2:

environment location:C:UsersIEUserMiniconda3envspy2

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:UsersIEUser>

Пакеты ПО могут быть установлены с помощью Conda. Корневая база Miniconda включает в себя базовые пакеты, которые не являются частью стандартной библиотеки Python для настройки машинного обучения.

Установка по умолчанию включает минимум пакетов Conda. Чтобы проверить список установленных пакетов, нужно убедиться, что она активна, и запустить conda list. В корневой среде устанавливаются эти пакеты:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

(base)C:UsersIEUser>conda list

asn1crypto0.24.0py37_0

ca-certificates2018.03.070

certifi2018.8.24py37_1

cffi1.11.5py37h74b6da3_1

chardet3.0.4py37_1

conda4.5.11py37_0

conda-env2.6.01

console_shortcut0.1.13

cryptography2.3.1py37h74b6da3_0

idna2.7py37_0

menuinst1.4.14py37hfa6e2cd_0

openssl1.0.2phfa6e2cd_0

pip10.0.1py37_0

pycosat0.6.3py37hfa6e2cd_0

pycparser2.18py37_1

pyopenssl18.0.0py37_0

pysocks1.6.8py37_0

python3.7.0hea74fb7_0

pywin32223py37hfa6e2cd_1

requests2.19.1py37_0

ruamel_yaml0.15.46py37hfa6e2cd_0

setuptools40.2.0py37_0

six1.11.0py37_1

urllib31.23py37_0

vc14h0510ff6_3

vs2015_runtime14.0.251233

wheel0.31.1py37_0

win_inet_pton1.0.1py37_1

wincertstore0.2py37_0

yaml0.1.7hc54c509_2

(base)C:UsersIEUser>

Поиск и установка пакетов

Пакеты устанавливаются из репозиториев, называемых channels by Conda. Чтобы выполнить поиск определенного пакета, запустите поиск <package name>. Вот так вы будете искать keras:

1

2

3

4

5

6

7

8

9

10

11

(base)C:UsersIEUser>conda search keras

Loading channels:done

keras2.0.8py35h15001cb_0  pkgs/main

keras2.0.8py36h65e7a35_0  pkgs/main

keras2.1.2py35_0  pkgs/main

keras2.1.2py36_0  pkgs/main

keras2.1.3py35_0  pkgs/main

keras2.1.3py36_0  pkgs/main

...(more)

Для каждой версии существуют разные версии пакетов и сборки. Предыдущий поиск показывает только пакеты с именем keras. Чтобы выполнить более широкий поиск, используйте *. Например, при запуске conda search *keras*, вы получите следующее:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

(base)C:UsersIEUser>conda search *keras*

Loading channels:done

keras2.0.8py35h15001cb_0  pkgs/main

keras2.0.8py36h65e7a35_0  pkgs/main

keras2.1.2py35_0  pkgs/main

keras2.1.2py36_0  pkgs/main

keras2.1.3py35_0  pkgs/main

keras2.1.3py36_0  pkgs/main

...(more)

keras-applications1.0.2py35_0  pkgs/main

keras-applications1.0.2py36_0  pkgs/main

keras-applications1.0.4py35_0  pkgs/main

...(more)

keras-base2.2.0py35_0  pkgs/main

keras-base2.2.0py36_0  pkgs/main

...(more)

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

Чтобы установить пакет, запустите conda install <package name>. По умолчанию самая новая версия пакета будет установлена в активной среде. Установите пакет keras в среду otherenv, созданную вами:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

(base)C:UsersIEUser>conda activate otherenv

(otherenv)C:UsersIEUser>conda install keras

Solving environment:done

environment location:C:UsersIEUserMiniconda3envsotherenv

added/updated specs:

-keras

The following NEWpackages 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:

1

(otherenv)C:UsersIEUser>conda install keras--dry-run

При необходимости можно изменить базовую версию Python среды Conda, установив определенную версию пакета python. Создайте новую среду под названием envpython:

1

2

3

4

5

6

7

8

9

10

11

<span class="gp">(otherenv)C:UsersIEUser&gt;</span>conda create--name envpython

<span class="go">Solving environment:done</span>

<span class="go">environment location:C:UsersIEUserMiniconda3envsenvpython</span>

<span class="go">Proceed([y]/n)?y</span>

<span class="go">Preparing transaction:done</span>

<span class="go">Verifying transaction:done</span>

<span class="go">Executing transaction:done</span>

Поскольку корневая среда использует Python 3,7, создается envpython с этой же версией.

1

2

3

4

5

6

7

8

(base)C:UsersIEUser>conda activate envpython

(envpython)C:UsersIEUser>python

Python3.7.0(default,Jun282018,08:04:48)[MSCv.191264bit(AMD64)]::Anaconda,Inc.on win32

Type"help","copyright","credits"or"license"formore information.

>>>quit()

(envpython)C:UsersIEUser>

Чтобы установить определенную версию пакета , запустите conda install <package name>=<version>. Вот так вы установите Python 3.6 в среду envpython:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

(envpython)C:UsersIEUser>conda install python=3.6

Solving environment:done

environment location:C:UsersIEUserMiniconda3envsenvpython

added/updated specs:

-python=3.6

The following NEWpackages 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:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

(envpython)C:UsersIEUser>deactivate

(base)C:UsersIEUser>conda install numpy scipy matplotlib

Solving environment:done

environment location:C:UsersIEUserMiniconda3

added/updated specs:

-matplotlib

-numpy

-scipy

The following packages will be downloaded:

package|build

---------------------------|-----------------

libpng-1.6.34|h79bbb47_01.3MB

mkl_random-1.0.1|py37h77b88f5_1267KB

intel-openmp-2019.0|1171.7MB

qt-5.9.6|vc14h62aca36_092.5MB

matplotlib-2.2.3|py37hd159220_06.5MB

tornado-5.1|py37hfa6e2cd_0668KB

pyqt-5.9.2|py37ha878b3d_04.6MB

pytz-2018.5|py37_0232KB

scipy-1.1.0|py37h4f6bf74_113.5MB

jpeg-9b|hb83a4c4_2313KB

python-dateutil-2.7.3|py37_0260KB

numpy-base-1.15.1|py37h8128ebf_03.9MB

numpy-1.15.1|py37ha559c80_037KB

mkl_fft-1.0.4|py37h1e22a9b_1120KB

kiwisolver-1.0.1|py37h6538335_061KB

pyparsing-2.2.0|py37_196KB

cycler-0.10.0|py37_013KB

freetype-2.9.1|ha9979f8_1470KB

icu-58.2|ha66f8fd_121.9MB

sqlite-3.24.0|h7602738_0899KB

sip-4.19.12|py37h6538335_0283KB

------------------------------------------------------------

Total:149.5MB

The following NEWpackages 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>, но помните, что при удалении пакета, все зависимые от него тоже удалятся:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

(base)C:UsersIEUser>conda remove numpy

Solving environment:done

environment location:C:UsersIEUserMiniconda3

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:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

(base)C:UsersIEUser>conda search pytorch

Loading channels:done

PackagesNotFoundError:The following packages are notavailable 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

Tosearch foralternate channels that may provide the conda packageyou're

looking for,navigate to

https://anaconda.org

andusethe search bar at the top of the page.

В случае, если будете искать pytorch на сайте anaconda, вы получите следующие результаты:

Anaconda Search for pytorch

В канале pytorch имеется пакет под названием pytorch с версией 0.4.1. Чтобы установить пакет с определенного канала, используйте параметр -c <chanel> вместе с conda install:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

(base)C:UsersIEUser>conda install-cpytorch pytorch

Solving environment:done

environment location:C:UsersIEUserMiniconda3

added/updated specs:

-pytorch

The following packages will be downloaded:

package|build

---------------------------|-----------------

pytorch-0.4.1|py37_cuda90_cudnn7he774522_1590.4MB  pytorch

The following NEWpackages will be INSTALLED:

pytorch:0.4.1-py37_cuda90_cudnn7he774522_1 pytorch

Proceed([y]/n)?

Также можно добавить канал, чтобы Conda производила там поиск пакетов. Чтобы посмотреть текущие каналы, запустите conda config —get channels:

1

2

3

4

(base)C:UsersIEUser>conda config--get channels

--add channels'defaults'

(base)C:UsersIEUser>

Когда у вас появится множество каналов,нужно будет выставить приоритет. Чтобы добавить канал с наименьшим приоритетом в список, запустите conda config —append channels <channel name>. С наивысшим ? conda config —prepend channels <channel name>. Рекомендуется выставлять новым каналам низкий приоритет, чтобы продолжить использовать каналы по умолчанию. Таким образом, вы можете установить pytorch, добавив канал pytorch и запустив conda install pytorch:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

(base)C:UsersIEUser>conda config--append channels pytorch

(base)C:UsersIEUser>conda config--get channels

--add channels'pytorch'# lowest priority

--add channels'defaults'# highest priority

(base)C:UsersIEUser>conda install pytorch

Solving environment:done

environment location:C:UsersIEUserMiniconda3

added/updated specs:

-pytorch

The following packages will be downloaded:

package|build

---------------------------|-----------------

pytorch-0.4.1|py37_cuda90_cudnn7he774522_1590.4MB  pytorch

The following NEWpackages 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:

1

<span class="go">conda create--name newproject</span>

Чтобы установить pip, активируйте среду и установите пакет Conda:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

(base)C:UsersIEUser>conda activate newproject

(newproject)C:UsersIEUser>conda install pip

Solving environment:done

environment location:C:UsersIEUserMiniconda3envsnewproject

added/updated specs:

-pip

The following NEWpackages 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:

1

2

3

4

5

6

7

8

(newproject)C:UsersIEUser>pip install unipath

Collecting unipath

Installing collected packages:unipath

Successfully installed unipath-1.1

You are using pip version10.0.1,however version18.0isavailable.

You should consider upgrading via the'python -m pip install --upgrade pip'command.

(newproject)C:UsersIEUser>

После установки вы можете посмотреть на пакеты с помощью conda list и проверить, что Unipath был установлен:

1

2

3

4

5

6

7

8

9

10

11

12

13

(newproject)C:UsersIEUser>conda list

certifi2018.8.24py37_1

pip10.0.1py37_0

python3.7.0hea74fb7_0

setuptools40.2.0py37_0

Unipath1.1<pip>

vc14h0510ff6_3

vs2015_runtime14.0.251233

wheel0.31.1py37_0

wincertstore0.2py37_0

(newproject)C:UsersIEUser>

Также можно использовать пакеты из системы VSC с помощью pip. Чтобы активировать supervisor, version 4.0.0dev0. доступный в репозитории Git, для начала установите последний:

1

(newproject)C:UsersIEUser>conda install git

Теперь установите supervisor, используя pip, с помощью репозитория Git:

1

(newproject)pip install-egit://github.com/Supervisor/[email protected]#egg=supervisor

После завершения установки supervisor будет указан в списке установленных пакетов:

1

2

3

4

5

6

7

8

9

10

11

(newproject)C:UsersIEUser>conda list

certifi2018.8.24py37_1

git2.18.0h6bb4b03_0

meld31.0.2<pip>

pip10.0.1py37_0

python3.7.0hea74fb7_0

setuptools40.2.0py37_0

supervisor4.0.0.dev0<pip>

...(more)

XOR gate ? ещё один момент, который стоит знать в процессе настройки Python для машинного обучения: используя Conda обучите нейронную сеть функционировать как XOR gate

XOR gate реализуют операцию OR. Требуется два цифровых входа, равные 0 или 1. И вывода, 1 (true) и 0 (false). Таблица ниже суммирует операции XOR gate:

Python для машинного обучения

Операцию XOR можно интерпретировать как classification problem, потому что она принимает два входа и должна классифицировать их как 0 или 1 в зависимости от того, равны они друг другу или нет. Именно этот пример обычно используется в качестве первого случая обучения нейронной сети, поскольку он прост, но в то же время требует нелинейного классификатора, такого как нейронная сеть. Чтобы реализовать нейронную сеть, создайте среду Conda, названную nnxor:

1

(base)C:UsersIEUser>conda create nnxor

Теперь активируйте и установите пакет keras:

1

2

3

(base)C:UsersIEUser>conda activate nnxor

(nnxor)C:UsersIEUser>conda install keras

keras ? высокоуровневый API, который упрощает внедрение нейронных сетей поверх известных библиотек, таких как TensorFlow. Обучите следующую нейронную сеть действовать как XOR gate:

XOR gate neural network

Сеть берет два входа (A, B) и передает их двум нейронам, показанными большими кругами. Затем она принимает входные данные этих нейронов и подает их на выходной нейрон, который должен обеспечивать классификацию в соответствии с таблицей XOR.

Процесс обучения состоит в том, чтобы настроить значения w_1 до w_6, чтобы выход соответствовал таблице. Для этого входные примеры начнут подаваться по одному, вывод станет рассчитываться с текущими значениями, и, сравнивая вывод с желаемым, значения будут корректироваться.

Для этого создайте папку с именем nnxor в директории (C:UsersIEUser) с файлом под именем nnxor.py, чтобы сохранить программу Python для реализации нейронной сети.

Program File

В файле nnxor.py выберите сеть для обучения и тестирования:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

import numpy asnp

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 возможных примеров ввода.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

(nnxor)C:UsersIEUser>cd nnxor

(nnxor)C:UsersIEUsernnxor>python nnxor.py

Using TensorFlow backend.

Epoch1/5000

2018-09-1609:49:05.987096:Itensorflow/core/platform/cpu_feature_guard.cc:141]Your CPU supports instructions that thisTensorFlow binary was notcompiled touse:AVX AVX2

2018-09-1609:49:05.993128:Itensorflow/core/common_runtime/process_util.cc:69]Creating newthread pool with defaultinter op setting:2.Tune using inter_op_parallelism_threads forbest performance.

4/4[==============================]-0s39ms/step-loss:0.2565

Epoch2/5000

4/4[==============================]-0s0us/step-loss:0.2566

Epoch3/5000

4/4[==============================]-0s0us/step-loss:0.2566

Epoch4/5000

4/4[==============================]-0s0us/step-loss:0.2566

Epoch5/5000

4/4[==============================]-0s0us/step-loss:0.2566

Epoch6/5000

4/4[==============================]-0s0us/step-loss:0.2566

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

1

2

3

4

5

6

7

8

9

10

11

12

Epoch4997/5000

4/4[==============================]-0s0us/step-loss:0.0034

Epoch4998/5000

4/4[==============================]-0s0us/step-loss:0.0034

Epoch4999/5000

4/4[==============================]-0s0us/step-loss:0.0034

Epoch5000/5000

4/4[==============================]-0s0us/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 для машинного обучения on Realpython


Источник: proglib.io

Комментарии: