Как установить Keras на Linux и Windows / keras 2
В этом материале вы узнаете, как установить Keras на ОС Linux и Windows, а также ознакомитесь с проблемами, которые могут возникнуть в процессе, и требованиями для установки.
Как установить Keras на Linux
Keras — это фреймворк Python для глубокого обучения, поэтому в первую очередь нужно, чтобы Python был установлен в системе.
В Ubuntu он есть по умолчанию. Рекомендуется использовать последнюю версию, то есть python3. Для проверки наличия его в системе выполните следующее:
- Откройте терминал (Ctrl+Alt+T)
- Введите python3 -V или python3 –version
Выводом будет версия Python 3.
Python 3.6.9
Если Python 3 не установлен, воспользуйтесь следующими инструкциями:
-
Добавьте PPA , запустив следующую команду
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update sudo apt-get install python3.6
Теперь пришло время устанавливать Keras.
Но сначала нужно установить один из бэкенд-движков: Tensorflow, Theano или Microsoft CNTK. Лучше всего использовать первый.
Установите Tensorflow из PyPl:
pip3 install tensorflow
Теперь установка Keras:
- Установите Keras из PyPl:
pip3 install Keras
- Или установите его из Github:
git clone https://github.com/keras-team/keras.git
cd Keras
sudo python3 setup.py install
Как установить Keras на Windows?
Прежде чем переходить к установке Keras, нужно убедиться, что в системе есть Python. Нужна версия как минимум Python 3.5+.
Для проверки установленной версии:
- Откройте cmd
- Введите python -V или python –version
Отобразится текущая версия Python.
Python 3.7.3
Если Python не установлен или загружена более старая версия:
- Зайдите на сайт python.org
- Выберите последнюю версию Python для Windows
- В нижней части страницы выберите установочный файл Windows x86- для 64-битной версии системы или Windows x86 — для 32-битной.
- После загрузки программы установки дважды кликните по файлу.
- Снова проверьте версию Python в cmd
Теперь нужно установить один из движков: Tensorflow, Theano или Microsoft CNTK. Рекомендуется использовать первый.
Установите Tensofrflow с помощью пакетного менеджера pip3:
pip3 install tensorflow
Теперь установите Keras
-
Установите Keras из PyPl:
pip3 install Keras
git clone https://github.com/keras-team/keras.git
cd keras
python3 setup.py install
Создайте первую программу в Keras
Создадим регрессионную предсказательную модель на основе данных о ценах Boston Housing с помощью Keras. Данные включают 13 признаков домов и включают 506 объектов. Задача — предсказать цены.
Это классическая регрессионная проблема машинного обучения, а набор данных доступен в модуле Keras.dataset .
Реализация:
import numpy as np import pandas as pd # загрузить набор данных, это может занять некоторое время from keras.datasets import boston_housing (train_x,train_y),(test_x,test_y)=boston_housing.load_data()
Нормализация данных
mean=train_x.mean(axis=0) train_x-=mean std=train_x.std(axis=0) train_x/=std test_x-=mean test_x/=std
Построение нейронной сети
from keras import models, layers def build_model(): model=models.Sequential() model.add(layers.Dense(64,activation='relu',input_shape=(train_x.shape[1],))) model.add(layers.Dense(64,activation='relu')) model.add(layers.Dense(1)) model.compile(optimizer='rmsprop',loss='mse',metrics=['mae']) return model
Тренировка модели
model=build_model() model.fit(train_x,train_y,epochs=80,batch_size=16,verbose=0)
Оценка модели с помощью среднеквадратической ошибки модели и средней абсолютной ошибки
test_mse, test_mae=model.evaluate(test_x, test_y) test_mae
2.6441757678985596
Модель получает довольно высокую среднюю ошибку с этими данными. Лучшие результаты можно получить за счет дальнейшей предварительной обработки данных.
Выводы
Статья посвящена пошаговой установке Keras в Linux (Ubuntu) и Windows. Она также включает базовую реализацию предсказательной модели ценообразования Boston Housing, которая является хорошо исследованной регрессионной проблемой моделирования в машинном обучении.
se.moevm.info
Используя терминал и утилиту pip установить библиотеки:
pip install numpy pip install pandas pip install matplotlib pip install scikit-learn
Установить библиотеку Keras:
Установка Keras напрямую
pip install Keras
При установке будут скачаны все необходимые зависимости. Проверить, что также был установлен TensorFlow. Для этого необходимо ввести:
pip list
В выведенном списке необходимо найти строчку tensorflow 1.15 Если данная строка отсутствует, то необходимо ввести:
pip install "tensorflow==1.15"
Для подключения библиотеки Keras в коде необходимо будет вводить:
import keras #подключение библиотеки from keras import layers #подключение модуля Keras с слоями
Установка Keras через TensorFlow
Модуль Keras также поставляется в составе модуля TensorFlow Для установки, необходимо ввести:
pip install tensorflow
Для подключения библиотеки Keras в коде необходимо будет вводить:
import tensorflow as tf import tf.keras as keras #подключение библиотеки from keras import layers #подключение модуля Keras с слоями
import tensorflow.keras #подключение библиотеки from tensorflow.keras import layers #подключение модуля Keras с слоями
courses/artificial_neural_networks/dependency.txt · Last modified: 2022/12/10 09:08 (external edit)
Page Tools
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
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
Иначе, будут выдаваться предупреждения, всякий раз при запуске программы. Но я не стал устанавливать дополнительное ПО, а просто вначале программы пишу строчки:
import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
И предупреждения перестают отображаться. Как поступить вам, решайте сами.
Итак, после установки, можно проверить корректность работы TensorFlow и Keras с помощью двух импортов:
import tensorflow as tf from tensorflow import keras
Если здесь программа не выдает никаких ошибок, то, скорее всего, пакеты были успешно установлены и готовы к работе.
Еще один вариант – использовать коллабораторию гугла:
Это специальный сервис для работ по машинному обучению, в том числе и с нейронными сетями. Например, вот у меня здесь написана программа в специальном редакторе
Он очень прост в использовании, поэтому нет смысла его объяснять. Преимущество здесь в том, что вам понадобится только браузер и выход в интернет, чтобы начать проектировать и обучать НС. Это хорошая стартовая площадка. Возможно, я буду показывать часть программ здесь.
Пример построения сети на Keras
Итак, теперь, когда мы с вами разобрались с установкой Keras, давайте воспользуемся его API для построения и обучения простой НС. Сначала я думал взять один из примеров предыдущего занятия, но потом в документации увидел интересную реализацию: перевода градусов Цельсия в градусы Фаренгейта. Общая формула, такая:

Это один из примеров задачи регрессии, когда на выходе сети формируется числовое значение, в данном случае – градусы по Фаренгейту. Итак, для такого преобразования достаточно взять следующую нейросеть с линейной функцией активацией:

Выходное значение будет формироваться как:

Очевидно, что в рамках нашей задачи:

Давайте построим такую простейшую сеть и выполним ее обучение. Сначала импортируем необходимые модули:
import numpy as np import matplotlib.pyplot as plt from tensorflow import keras from tensorflow.keras.layers import Dense
Я чуть позже поясню: что здесь что. Далее, в качестве обучающего множества будем использовать два списка:
c = np.array([-40, -10, 0, 8, 15, 22, 38]) f = np.array([-40, 14, 32, 46, 59, 72, 100])
И, затем, определим модель НС, как последовательную, т.е. состоящую из слоев, идущих друг за другом. Именно такие НС мы рассматривали на наших занятиях:
model = keras.Sequential()
Добавим в эту модель слой нейронов, состоящий из одного нашего выходного нейрона, имеющий ровно один вход и линейную активационную функцию:
model.add(Dense(units=1, input_shape=(1,), activation='linear'))

Здесь units=1 означает один нейрон, а input_shape=(1,) – один вход. Конструктор Dense формирует полносвязный слой, то есть, все входы будут связаны со всеми нейронами данного слоя. В нашем простейшем случае – это связь и дополнительно, автоматически, для каждого нейрона добавляется смещение – bias.
Теперь, когда структура НС определена, ее нужно скомпилировать, указав критерий качества и способ оптимизации алгоритма градиентного спуска. В рамках данной задачи мы выберем минимум среднего квадрата ошибки и оптимизацию по Adam:
model.compile(loss='mean_squared_error', optimizer=keras.optimizers.Adam(0.1))
Видите, нам здесь понадобились знания теоретического материала прошлых занятий. Мы теперь знаем, что такое ‘mean_squared_error’ и когда его выбирать, а также знакомы с принципом оптимизации по Adam и знаем зачем это нужно. Здесь и далее без теоретического материала не обойтись. А вот это значение 0,1 – это шаг сходимости алгоритма обучения. Мы его обозначали через лямбда:

Что еще происходит на этапе компиляции? Сеть автоматически инициализируется начальными значениями весов связей. Так, что теперь она полностью готова к этапу обучения.
Для запуска обучения используется метод fit:
log = model.fit(c, f, epochs=500, verbose=False)
Здесь передается обучающая выборка для входных и выходных значений, затем, число эпох, т.е. выборка будет пропущена через сеть 500 раз и на каждой итерации будут корректироваться весовые коэффициенты и вычисляться значение критерия качества. Последний параметр указывает не отображать в консоли текущую информацию при обучении сети. Мы ее выведем после, используя объект log:
plt.plot(log.history['loss']) plt.grid(True) plt.show()
Здесь идет обращение к истории, берутся значения критерия качества (функции потерь – loss function) и отображаются в виде графика.
По идее, все, наша сеть сформирована, обучена и давайте посмотрим как это все будет работать. После запуска программы увидим следующий график:

То есть, наш критерий качества уже на 400-й эпохе практически перестал уменьшаться. Хорошо, теперь было бы интересно узнать как работает сеть и какие весовые коэффициенты были найдены. Чтобы подать на вход произвольное значение, нужно воспользоваться методом predict:
print(model.predict([100]))
Он возвратит выходное значение и мы его отобразим в консоли. А для отображения весовых коэффициентов, запишем метод get_weights:
print(model.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
© 2023 Частичное или полное копирование информации с данного сайта для распространения на других ресурсах, в том числе и бумажных, строго запрещено. Все тексты и изображения являются собственностью сайта
keras 2.15.0
Keras is a deep learning API written in Python, running on top of the machine learning platform TensorFlow.
It was developed with a focus on enabling fast experimentation and providing a delightful developer experience. The purpose of Keras is to give an unfair advantage to any developer looking to ship ML-powered apps.
- Simple – but not simplistic. Keras reduces developer cognitive load to free you to focus on the parts of the problem that really matter. Keras focuses on ease of use, debugging speed, code elegance & conciseness, maintainability, and deployability (via TFServing, TFLite, TF.js).
- Flexible – Keras adopts the principle of progressive disclosure of complexity: simple workflows should be quick and easy, while arbitrarily advanced workflows should be possible via a clear path that builds upon what you’ve already learned.
- Powerful – Keras provides industry-strength performance and scalability: it is used by organizations and companies including NASA, YouTube, and Waymo. That’s right – your YouTube recommendations are powered by Keras, and so is the world’s most advanced driverless vehicle.
