- Keras — установка и первое знакомство
- Пример построения сети на Keras
- Видео по теме
- Keras — Установка
- Предпосылки
- питон
- Keras Установка Шаги
- Шаг 1: Создать виртуальную среду
- Шаг 2: Активировать среду
- Шаг 3: библиотеки Python
- Установка Keras использованием Python
- Выйти из виртуальной среды
- Анаконда Облако
- Создать новую среду conda
- Активировать среду conda
- Установите Spyder
- Установить библиотеки Python
- Установить Keras
- Запустить Spyder
Keras — установка и первое знакомство
После изучения необходимых теоретических аспектов, мы готовы к построению и обучению НС. На одном из прошлых занятий по back propagation, мы буквально вручную прописывали алгоритм обучения и структуру сети. Но, это не лучший путь. Особенно, когда сеть становится большой, а критериев качества и методов оптимизации – пруд пруди. Гораздо проще воспользоваться одним из пакетов по разработке и обучению нейросетей. Благо, что на сегодняшний день их масса. Вот диаграмма популярности таких фреймворков, взятая из официальной документации по Keras:
Как видим, по состоянию на 2018 год лидером является TensorFlow, разработанный компанией Google, специально для создания сетей самой разной структуры. Кроме того, TensorFlow позволяет проводить обучение на графических процессорах (GPU), компьютеров объединенных в сеть. Это значительно повышает скорость работы алгоритмов. Но TensorFlow – относительно низкоуровневый фреймворк. Проектировать на нем НС все равно, что писать программу на ассемблере (машинном коде), вместо того, чтобы воспользоваться языками высокого уровня. Как раз другие фреймворки из диаграммы и являются, своего рода, такими языками. Они значительно упрощают процесс проектирования нейросетей. И, в частности, один из самых популярных пакетов Keras является некой надстройкой, оболочкой над TensorFlow:
То есть, используя API Keras, мы в действительности создаем нейросеть на TensorFlow, но делаем это гораздо быстрее. Кроме того, API Keras является официальным фронтендом TensorFlow и мы можем им воспользоваться, просто установив TensorFlow. Для этого нужно выполнить в терминале команду:
pip install tensorflow
Начнется установка, достаточно долгая, т.к. пакет весьма объемный. Дополнительно, мне пришлось установить еще модуль:
pip install tf-nightly
Возможно, еще придется установить Keras как самостоятельный пакет:
pip install keras
Но это все индивидуально и вам не стоит торопиться этого делать, сначала попробуйте только первую команду.
Теперь, начиная с версии
автоматически используется GPU процессора. Для этого на компьютере должно быть установлено специальное ПО:
CUDA для GPU TensorFlow
Иначе, будут выдаваться предупреждения, всякий раз при запуске программы. Но я не стал устанавливать дополнительное ПО, а просто вначале программы пишу строчки:
И предупреждения перестают отображаться. Как поступить вам, решайте сами.
Итак, после установки, можно проверить корректность работы TensorFlow и Keras с помощью двух импортов:
Если здесь программа не выдает никаких ошибок, то, скорее всего, пакеты были успешно установлены и готовы к работе.
Еще один вариант – использовать коллабораторию гугла:
Это специальный сервис для работ по машинному обучению, в том числе и с нейронными сетями. Например, вот у меня здесь написана программа в специальном редакторе
Он очень прост в использовании, поэтому нет смысла его объяснять. Преимущество здесь в том, что вам понадобится только браузер и выход в интернет, чтобы начать проектировать и обучать НС. Это хорошая стартовая площадка. Возможно, я буду показывать часть программ здесь.
Пример построения сети на Keras
Итак, теперь, когда мы с вами разобрались с установкой Keras, давайте воспользуемся его API для построения и обучения простой НС. Сначала я думал взять один из примеров предыдущего занятия, но потом в документации увидел интересную реализацию: перевода градусов Цельсия в градусы Фаренгейта. Общая формула, такая:
Это один из примеров задачи регрессии, когда на выходе сети формируется числовое значение, в данном случае – градусы по Фаренгейту. Итак, для такого преобразования достаточно взять следующую нейросеть с линейной функцией активацией:
Выходное значение будет формироваться как:
Очевидно, что в рамках нашей задачи:
Давайте построим такую простейшую сеть и выполним ее обучение. Сначала импортируем необходимые модули:
Я чуть позже поясню: что здесь что. Далее, в качестве обучающего множества будем использовать два списка:
И, затем, определим модель НС, как последовательную, т.е. состоящую из слоев, идущих друг за другом. Именно такие НС мы рассматривали на наших занятиях:
Добавим в эту модель слой нейронов, состоящий из одного нашего выходного нейрона, имеющий ровно один вход и линейную активационную функцию:
Здесь units=1 означает один нейрон, а input_shape=(1,) – один вход. Конструктор Dense формирует полносвязный слой, то есть, все входы будут связаны со всеми нейронами данного слоя. В нашем простейшем случае – это связь и дополнительно, автоматически, для каждого нейрона добавляется смещение – bias.
Теперь, когда структура НС определена, ее нужно скомпилировать, указав критерий качества и способ оптимизации алгоритма градиентного спуска. В рамках данной задачи мы выберем минимум среднего квадрата ошибки и оптимизацию по Adam:
Видите, нам здесь понадобились знания теоретического материала прошлых занятий. Мы теперь знаем, что такое ‘mean_squared_error’ и когда его выбирать, а также знакомы с принципом оптимизации по Adam и знаем зачем это нужно. Здесь и далее без теоретического материала не обойтись. А вот это значение 0,1 – это шаг сходимости алгоритма обучения. Мы его обозначали через лямбда:
Что еще происходит на этапе компиляции? Сеть автоматически инициализируется начальными значениями весов связей. Так, что теперь она полностью готова к этапу обучения.
Для запуска обучения используется метод fit:
Здесь передается обучающая выборка для входных и выходных значений, затем, число эпох, т.е. выборка будет пропущена через сеть 500 раз и на каждой итерации будут корректироваться весовые коэффициенты и вычисляться значение критерия качества. Последний параметр указывает не отображать в консоли текущую информацию при обучении сети. Мы ее выведем после, используя объект log:
Здесь идет обращение к истории, берутся значения критерия качества (функции потерь – loss function) и отображаются в виде графика.
По идее, все, наша сеть сформирована, обучена и давайте посмотрим как это все будет работать. После запуска программы увидим следующий график:
То есть, наш критерий качества уже на 400-й эпохе практически перестал уменьшаться. Хорошо, теперь было бы интересно узнать как работает сеть и какие весовые коэффициенты были найдены. Чтобы подать на вход произвольное значение, нужно воспользоваться методом predict:
Он возвратит выходное значение и мы его отобразим в консоли. А для отображения весовых коэффициентов, запишем метод get_weights:
Снова запустим программу и в консоли увидим строчки:
[[211.27545]]
[array([[1.8292068]], dtype=float32), array([28.35477], dtype=float32)]
Нейросеть перевела 100 градусов Цельсия в 211 градусов по Фаренгейту, что близко к истине:
А весовые коэффициенты были определены как 1,8 и 28 – также близко к требуемым величинам.
Вот простейший пример того, как с помощью Keras можно описать сеть, определить для нее критерий качества, оптимизационные параметры и провести обучение.
В качестве самостоятельного задания, установите у себя пакет TensorFlow и повторите этот пример.
На следующем занятии мы продолжим знакомиться с API Keras на примерах решения уже более сложных задач.
Видео по теме
Нейронные сети: краткая история триумфа
Структура и принцип работы полносвязных нейронных сетей | #1 нейросети на Python
Персептрон — возможности классификации образов, задача XOR | #2 нейросети на Python
Back propagation — алгоритм обучения по методу обратного распространения | #3 нейросети на Python
Ускорение обучения, начальные веса, стандартизация, подготовка выборки | #4 нейросети на Python
Переобучение — что это и как этого избежать, критерии останова обучения | #5 нейросети на Python
Функции активации, критерии качества работы НС | #6 нейросети на Python
Keras — установка и первое знакомство | #7 нейросети на Python
Keras — обучение сети распознаванию рукописных цифр | #8 нейросети на Python
Как нейронная сеть распознает цифры | #9 нейросети на Python
Оптимизаторы в Keras, формирование выборки валидации | #10 нейросети на Python
Dropout — метод борьбы с переобучением нейронной сети | #11 нейросети на Python
Batch Normalization (батч-нормализация) что это такое? | #12 нейросети на Python
Как работают сверточные нейронные сети | #13 нейросети на Python
Делаем сверточную нейронную сеть в Keras | #14 нейросети на Python
Примеры архитектур сверточных сетей VGG-16 и VGG-19 | #15 нейросети на Python
Теория стилизации изображений (Neural Style Transfer) | #16 нейросети на Python
Делаем перенос стилей изображений с помощью Keras и Tensorflow | #17 нейросети на Python
Как нейронная сеть раскрашивает изображения | #18 нейросети на Python
Введение в рекуррентные нейронные сети | #19 нейросети на Python
Как рекуррентная нейронная сеть прогнозирует символы | #20 нейросети на Python
Делаем прогноз слов рекуррентной сетью Embedding слой | #21 нейросети на Python
Как работают RNN. Глубокие рекуррентные нейросети | #22 нейросети на Python
LSTM — долгая краткосрочная память | #23 нейросети на Python
Как делать сентимент-анализ рекуррентной LSTM сетью | #24 нейросети на Python
Рекуррентные блоки GRU. Пример их реализации в задаче сентимент-анализа | #25 нейросети на Python
Двунаправленные (bidirectional) рекуррентные нейронные сети | #26 нейросети на Python
Автоэнкодеры. Что это и как работают | #27 нейросети на Python
Вариационные автоэнкодеры (VAE). Что это такое? | #28 нейросети на Python
Делаем вариационный автоэнкодер (VAE) в Keras | #29 нейросети на Python
Расширенный вариационный автоэнкодер (CVAE) | #30 нейросети на Python
Что такое генеративно-состязательные сети (GAN) | #31 нейросети на Python
Делаем генеративно-состязательную сеть в Keras и Tensorflow | #32 нейросети на Python
© 2021 Частичное или полное копирование информации с данного сайта для распространения на других ресурсах, в том числе и бумажных, строго запрещено. Все тексты и изображения являются собственностью сайта
Keras — Установка
В этой главе рассказывается, как установить Keras на ваш компьютер. Прежде чем перейти к установке, давайте пройдемся по основным требованиям Keras .
Предпосылки
Вы должны удовлетворять следующим требованиям —
- Любая ОС (Windows, Linux или Mac)
- Python версии 3.5 или выше.
питон
Keras — это библиотека нейронных сетей на основе Python, поэтому Python должен быть установлен на вашем компьютере. Если python правильно установлен на вашем компьютере, откройте ваш терминал и введите python, вы можете увидеть ответ, аналогичный указанному ниже,
На данный момент последняя версия — 3.7.2. Если Python не установлен, перейдите по официальной ссылке на python — www.python.org и загрузите последнюю версию, основанную на вашей ОС, и немедленно установите ее в своей системе.
Keras Установка Шаги
Установка Keras довольно проста. Выполните следующие шаги, чтобы правильно установить Keras в вашей системе.
Шаг 1: Создать виртуальную среду
Virtualenv используется для управления пакетами Python для различных проектов. Это будет полезно во избежание взлома пакетов, установленных в других средах. Поэтому всегда рекомендуется использовать виртуальную среду при разработке приложений Python.
Пользователи Linux или Mac OS, перейдите в корневой каталог вашего проекта и введите следующую команду для создания виртуальной среды:
После выполнения вышеупомянутой команды, каталог «kerasenv» создается с помощью bin, lib и включает в себя папки в вашем месте установки.
Пользователь Windows может использовать следующую команду,
Шаг 2: Активировать среду
Этот шаг настроит исполняемые файлы python и pip в вашем пути к оболочке.
Теперь мы создали виртуальную среду под названием «kerasvenv». Перейдите в папку и введите следующую команду,
Пользователи Windows перемещаются в папку «kerasenv» и вводят следующую команду:
Шаг 3: библиотеки Python
Keras зависит от следующих библиотек Python.
Надеюсь, вы установили все вышеперечисленные библиотеки в вашей системе. Если эти библиотеки не установлены, используйте команду ниже, чтобы установить одну за другой.
Вы могли увидеть следующий ответ,
Мы могли видеть следующий ответ,
Мы могли видеть следующий ответ,
Мы могли видеть следующий ответ,
Это библиотека машинного обучения с открытым исходным кодом. Используется для алгоритмов классификации, регрессии и кластеризации. Прежде чем перейти к установке, требуется следующее —
- Python версии 3.5 или выше
- NumPy версия 1.11.0 или выше
- SciPy версия 0.17.0 или выше
- Joblib 0.11 или выше.
Теперь мы устанавливаем scikit-learn с помощью следующей команды:
Seaborn — это удивительная библиотека, которая позволяет вам легко визуализировать ваши данные. Используйте команду ниже для установки —
Вы могли видеть сообщение, подобное указанному ниже —
Установка Keras использованием Python
На данный момент мы выполнили основные требования для установки Kera. Теперь установите Keras используя процедуру, описанную ниже:
Выйти из виртуальной среды
После завершения всех ваших изменений в вашем проекте, затем просто выполните приведенную ниже команду, чтобы выйти из среды:
Анаконда Облако
Мы считаем, что вы установили Anaconda Cloud на свой компьютер. Если anaconda не установлена, перейдите по официальной ссылке www.anaconda.com/distribution и выберите загрузку в зависимости от вашей ОС.
Создать новую среду conda
Запустите подсказку Anaconda, это откроет базовую среду Anaconda. Давайте создадим новую среду conda. Этот процесс похож на virtualenv. Введите следующую команду в вашем терминале conda —
Если вы хотите, вы можете создавать и устанавливать модули также с помощью графического процессора. В этом уроке мы следуем инструкциям процессора.
Активировать среду conda
Чтобы активировать среду, используйте следующую команду —
Установите Spyder
Spyder — это IDE для выполнения приложений на Python. Давайте установим эту IDE в нашу среду conda, используя следующую команду:
Установить библиотеки Python
Мы уже знали библиотеки python numpy, pandas и т. Д., Необходимые для keras. Вы можете установить все модули, используя следующий синтаксис:
Например, вы хотите установить панд —
Как и тот же метод, попробуйте сами установить остальные модули.
Установить Keras
Теперь все выглядит хорошо, поэтому вы можете начать установку keras с помощью следующей команды:
Запустить Spyder
Наконец, запустите spyder в вашем терминале conda, используя следующую команду:
Чтобы убедиться, что все установлено правильно, импортируйте все модули, он добавит все, и если что-то пойдет не так, вы получите сообщение об отсутствии модуля .