Как установить keras python
После изучения необходимых теоретических аспектов, мы готовы к построению и обучению НС. На одном из прошлых занятий по 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 как самостоятельный пакет:
Но это все индивидуально и вам не стоит торопиться этого делать, сначала попробуйте только первую команду.
Теперь, начиная с версии
автоматически используется 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
Ускорение обучения, начальные веса, стандартизация, подготовка выборки | #4 нейросети на Python
Функции активации, критерии качества работы НС | #6 нейросети на Python
Как нейронная сеть распознает цифры | #9 нейросети на Python
Оптимизаторы в Keras, формирование выборки валидации | #10 нейросети на 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 сетью | #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 на Linux и Windows / keras 2
В этом материале вы узнаете, как установить Keras на ОС Linux и Windows, а также ознакомитесь с проблемами, которые могут возникнуть в процессе, и требованиями для установки.
Как установить Keras на Linux
Keras — это фреймворк Python для глубокого обучения, поэтому в первую очередь нужно, чтобы Python был установлен в системе.
В Ubuntu он есть по умолчанию. Рекомендуется использовать последнюю версию, то есть python3. Для проверки наличия его в системе выполните следующее:
Выводом будет версия Python 3.
Если Python 3 не установлен, воспользуйтесь следующими инструкциями:
Теперь пришло время устанавливать Keras.
Но сначала нужно установить один из бэкенд-движков: Tensorflow, Theano или Microsoft CNTK. Лучше всего использовать первый.
Установите Tensorflow из PyPl:
Теперь установка Keras:
Как установить Keras на Windows?
Прежде чем переходить к установке Keras, нужно убедиться, что в системе есть Python. Нужна версия как минимум Python 3.5+.
Для проверки установленной версии:
Отобразится текущая версия Python.
Если Python не установлен или загружена более старая версия:
Теперь нужно установить один из движков: Tensorflow, Theano или Microsoft CNTK. Рекомендуется использовать первый.
Установите Tensofrflow с помощью пакетного менеджера pip3:
Теперь установите Keras
Создайте первую программу в Keras
Создадим регрессионную предсказательную модель на основе данных о ценах Boston Housing с помощью Keras. Данные включают 13 признаков домов и включают 506 объектов. Задача — предсказать цены.
Реализация:
Нормализация данных
Построение нейронной сети
Тренировка модели
Оценка модели с помощью среднеквадратической ошибки модели и средней абсолютной ошибки
Модель получает довольно высокую среднюю ошибку с этими данными. Лучшие результаты можно получить за счет дальнейшей предварительной обработки данных.
Выводы
Статья посвящена пошаговой установке Keras в Linux (Ubuntu) и Windows. Она также включает базовую реализацию предсказательной модели ценообразования Boston Housing, которая является хорошо исследованной регрессионной проблемой моделирования в машинном обучении.
Установка среды машинного обучения на основе Python в Windows 10
Дата публикации Dec 18, 2018
Цель:Установить основанную на Python среду для машинного обучения.
обзор
Получение Анаконды
Чтобы начать строить модели машинного обучения (ML) с помощью Python, мы начнем с установки Anaconda Navigator. Anaconda предоставляет эффективный и простой способ установки модулей Python на ваш компьютер. Итак, начнем.
2. Продолжите работу с мастером установки, но пропустите шаг, на котором вам нужно скачать и установить VS, мы сделаем это позже. Кроме того, обязательно установите Anaconda Navigator для одного пользователя. В то время, когда был написан этот набор инструкций, установка VS с помощью мастера настройки привела к сбою установки Anaconda. Кроме того, установка Anaconda для всех пользователей может привести к проблемам. Например, вы не сможете установить какие-либо модули, потому что Anaconda не будет обладать необходимыми привилегиями.
3. Запустите Anaconda Navigator и выберите вкладку «Главная», она должна быть выбрана по умолчанию. Найдите панель кода VS и нажмите кнопку «Установить». Это займет минуту или две.
Инталлинг Керас и Тензор потока
Теперь, когда мы установили Anaconda, давайте добавим Keras и Tensorflow на нашу машину.
4. Закройте Anaconda Navigator и запустите Anaconda Prompt. Запустите Anaconda, выполнив поиск в строке поиска Windows. Следующий терминал должен открыться. Обратите внимание, что это откроется набазаАнаконда среда.
5. Понизьте Python доKeras&Tensorflowсовместимая версия. Анаконда начнет искать все совместимые модули для Python 3.6. Это может занять несколько минут. Чтобы перейти на Python 3.6, используйте следующую команду:
conda install python=3.6
6. Создайте новую среду conda, где мы будем устанавливать наши модули для построения наших моделей с использованием графического процессора. Для этого выполните следующую команду:
Примечание. Убедитесь, что у вас есть видеокарта NVIDIA. Если вы этого не сделаете, установите версию процессора Keras.
Если вы хотите использовать свой процессор вместо этого, выполните следующую команду:
7. Для активации только что созданной среды conda:
activate PythonGPU или activate PythonCPU
Для деактивации среды используйте:
Пока не деактивируйте среду, мы собираемся установить все хорошее.
8. Чтобы установить версии графического процессора Keras & Tensorflow, модули, необходимые для создания наших моделей с нашим графическим процессором, выполните следующую команду:
Если вы хотите использовать свой процессор для построения моделей, вместо этого выполните следующую команду:
Много компьютерных вещей начнет происходить. Как только безумие прекратится, мы можем двигаться дальше. Пока ничего не закрывайте.
Получение Spyder и других пакетов Python для машинного обучения / глубокого обучения
Теперь вы можете захотеть, чтобы какое-то программное обеспечение написало и выполнило ваши скрипты Python. Вы всегда можете использоватьнапорнаписать и отредактировать свои скрипты Python и открыть другой терминал для их выполнения. Тем не менее, вы упустите все интересные функции Spyder.
9. УстановитьSpyder.
conda install spyder
Если вы хотите читать файлы Excel с помощью Pandas, выполните следующие команды:
12. Установить Scikit-Learn.
13. Установите подушку для обработки изображений
conda install pillow
Добавление недостающих модулей
К настоящему времени вы должны чувствовать себя комфортно при установке модулей с помощью команды conda. Если вам нужен конкретный модуль, просто найдите что-нибудь в Google:
Anaconda LibraryNameYouWant Install
Если у вас возникнут проблемы, поищите в Интернете. Скорее всего, вы не первый, кто столкнулся с данной ошибкой.
Запуск Spyder и проверка правильности установки всех модулей
Чтобы запустить Spyder, сначала активируйте требуемую среду conda (PythonCPU или PythonGPU) и выполните следующую команду:
Чтобы убедиться, что все установлено правильно, выполните следующие строки кода на консоли python:
Если вы не видите ошибок ModuleImport, вы готовы приступить к созданию моделей на основе машинного обучения с использованием Keras, Tensorflow и Scikit-Learn.
Как начать работу с Keras
Если вы только недавно открыли для себя нейронные сети и собираетесь их изучать, то вы на правильном пути. Многие новички начинают погружаться в машинное обучение через Keras – открытую нейросетевую библиотеку, написанную на языке Python.
В сегодняшней статье мы рассмотрим, что представляет собой Keras, а также поговорим о таком понятии, как Deep Learning.
Что такое Keras
Keras – это библиотека для Python, позволяющая легко и быстро создавать нейронные сети. Она совместима с TensorFlow, Theano, Microsoft Cognitive Toolkit и MXNet. Первые две платформы наиболее используемы для разработки алгоритмов глубокого обучения, но довольно сложны в освоении. Keras же, напротив, представляет собой отличный вариант для тех, кто только начинает изучение нейронных сетей.
Создатель библиотеки Франсуа Шолле, инженер Google, разработал Keras для того, чтобы максимально упростить процесс создания нейронных сетей. Упор был на расширяемости, модульности и минимализме с поддержкой Python.
Разработка Keras позволила компании Google внести большой вклад в глубокое обучение и искусственный интеллект. Связано это в первую очередь с тем, что библиотека содержит современные алгоритмы, которые ранее были недоступны.
Из особенностей принято выделять следующие факторы:
Что такое глубокое обучение
Глубокое обучение (от англ. Deep learning) – это совокупность методов машинного обучения, позволяющая обучать модель и предсказывать результат по набору входных данных. Технология основана на искусственных нейронных сетях. Они получают алгоритмы обучения и объемы данных, которые постоянно растут для повышения эффективности обучения. Чем больше данных – тем эффективнее процесс.
Обучение называется глубоким, потому что со временем нейронная сеть покрывает все большее количество уровней. Подобный процесс состоит из двух фаз – обучения и формирования выводов. Первый рассматривается как способ маркировки больших объемов данных и определение их характеристик, которые в последующем сравниваются и запоминаются системой. Это необходимо для того, чтобы сделать правильные выводы, когда система повторно сталкивается с подобными данными.
Этапы глубокого обучения:
Когда происходит формирование выводов, система делает некоторые заключения, после чего маркирует неизученные данные, исходя из полученной ранее информации.
Появление глубокого обучения привело к значительным достижениям в области компьютерного зрения. Благодаря этому мы можем классифицировать изображения, находить в них объекты и отмечать их заголовками. Для этого глубокие нейронные сети со многими скрытыми слоями могут последовательно изучать более сложные функции из исходного входного изображения:
Эти типы глубоких нейронных сетей называются свёрточными нейронными сетями. Они представляют собой многослойные нейронные сети, которые предполагают, что входные данные являются изображениями.
Модели глубокого обучения в Keras
В основе Keras лежат модели, основной тип которых – последовательность, представляющая собой линейный стек слоев.
Суть в следующем: создается последовательность и к ней добавляются слои в том порядке, в котором нужно выполнить вычисления. После определения компилируется модель, использующая базовую платформу для оптимизации вычислений.
Далее модель должна соответствовать данным – это можно сделать по одной партии данных за один раз или запустив весь режим обучения модели. Когда обучение будет завершено, модель можно использовать для прогнозирования новых данных.
Также есть еще один тип моделей – это класс Model, используемый с функциональным API.
Как установить Keras
В установке нет ничего сложного, главное – чтобы был установлен один из движков. Рекомендую попробовать TensorFlow. Подробнее на нем останавливаться не будем, его инсталляция отлично описана на официальном сайте.
Также вам могут потребоваться следующие компоненты:
После этого можно переходить к установке Keras, сделать это можно с помощью одной команды:
Альтернативная команда – установка из репозитория GitHub. Для начала потребуется сделать клон:
Затем перейдите в папку, где находится библиотека и воспользуйтесь командой:
Работа с Keras на примере
Рассмотрим работу Keras с движком TensorFlow на примере базовых операций: загрузки набора данных, построения модели, добавления параметров, компиляции, тренировки и оценки. С их помощью мы создадим собственный классификатор рукописных цифр на основе набора данных MNIST.
Шаг 1: Используем набор помеченных данных
В Keras много помеченных наборов данных, которые можно импортировать. В нашем случае нам потребуется MNIST, загрузить который можно следующим образом:
Шаг 2: Загружаем необходимые слои
Keras включает в себя большое количество слоев и параметров: функции потерь, оптимизаторы, метрики оценки и прочее. Они используются для создания, настройки, тренировки и оценки нейронных сетей.
Нам потребуются следующие слои:
Также для классификатора используем свёрточную нейронную сеть:
Шаг 3: Используем метод предварительной обработки данных
Будем использовать метод Keras.np_utils.to_categorical() для унитарной кодировки y_train и y_test. Выглядит он следующим образом:
Шаг 4: Используем метод add()
Для добавления импортированных слоев воспользуемся методом add():
Шаг 5: Используем метод compile()
Данный метод предназначен для процесса обучения:
Шаг 6: Используем метод fit()
Тренировку выполним с помощью метода fit():
Выглядит тренировка следующим образом:
Шаг 7: Оцениваем модель
Следующий этап после тренировки – проверка результатов на новых данных либо с помощью методов predict_classes() или evaluate(). Возьмем в качестве примера изображение:
Первым делом конвертируем его в нужный нам формат набора – MNIS. Затем попробуем распознать:
Шаг 8: Сохраняем модель
Как я уже говорил ранее, Keras является модульным – таким образом, мы можем сохранить модель и использовать ее в последующем:
Вот такими несложными действиями у нас получилось создать классификатор рукописных цифр – в этом и есть прелесть Keras. Это отличное решение для тех, кто только-только начинает вникать в нейронные сети и хочет поближе познакомиться с глубоким обучением.