Глубокое обучение «Karessing» с Keras

Введение

Четыре недели мы проливали свет на некоторые API/библиотеки глубокого обучения на AISaturdays в Лагосе, и как раз перед тем, как вы решите за или против глубокого обучения, особенно после того, как на прошлой неделе потусовались с бабушкой Теано, позвольте мне футов от земли с Керасом.

Представьте себе поездку по межштатной автомагистрали в 2018 году на автомобилях Ford Model T и Ford Mustang 2018 года. Справедливости ради: вы едете в международный день без ограничения скорости (просто продолжайте воображать и не спрашивайте у Google, существует ли такой день).

Я считаю, что при прочих равных условиях вы доберетесь до места назначения, и если вы выберете модель T, я могу предположить, что вы доберетесь до места назначения счастливыми, как пара ниже. Жить счастливо всегда или никогда? считая, что разработка модели, отвечающей на этот вопрос, является пустой тратой вычислительной мощности, скажем так, время покажет.

Но что касается «справедливости», мы находимся в информационном веке, когда тысячи исследователей, таких как мы — команда Кераса из AISaturdays, ищут решение тех же проблем, с которыми мы сталкиваемся как люди, то есть автоматизацию во всех сферах жизни. Появление облачных сервисов начинает восполнять пробел в недоступности пугающих ресурсов, таких как вычислительные ресурсы — блок тензорной обработки (TPU), блок графической обработки (GPU) и т. д. Кроме того, мы получаем признание за то, что мы публикуем или производим, и чем быстрее мы делаем, тем легче и уютнее мы делаем жизнь человечеству — представьте себе беспилотные автомобили с нулевой записью аварий или портье или кассир банка, который не даст вам «отношение». Отсюда призыв упростить жизнь исследователя с помощью простой в использовании и менее технической библиотеки для реализации глубокого обучения.

Дамы и господа читатели, представляю вам (барабанная дробь)

Разработанный Francois Chollet (надеюсь, он простит меня за с без акцента, в данный момент не могу найти акцент на моей клавиатуре) из Google Inc., Keras представляет собой кросс-платформенную нейронную сеть с открытым исходным кодом (NN ) API/библиотека, написанная на языке программирования Python. Он может работать на Theano (Университет Монреаля — просто надеюсь, что эта штука с акцентом меня не преследует), Tensorflow (Google), Cognitive Toolkit (Microsoft) или Mxnet (Amazon).

Имя «Керас» означает «рог» (греческое) или «слоновая кость» (латынь). Слышу, как кто-то спрашивает о причине этого имени, хотя я не Шолле, это относится к тому месту, где духи снов приходят на землю либо через ворота из слоновой кости для тех, кто обманывает людей ложными видениями, либо через ворота из рога для тех, кто возвещает будущее это сбудется. В любую из них вы верите, будущее ближе, чем мы когда-то думали. Не нужно выяснять, через какие врата я пришел, потому что я не дух сна, хотя и возвещаю будущее.

Keras — это высокоуровневый API-интерфейс NN, который снимает стресс, связанный с попытками справиться с низкоуровневыми операциями, такими как тензорное дифференцирование, манипуляции (изменение формы, точечные, поэлементные операции и т. д.) и т. д. Представьте, что вам нужно понять, как работает каждая часть вашего автомобиля. двигатель работает до того, как вам разрешат приступить к занятиям по вождению, расстраиваете? Конечно, просто преуменьшение, верно?

Почему Керас?

Keras был разработан, чтобы позволить исследователям сосредоточиться на экспериментах, поскольку ключом к проведению хороших исследований является возможность преобразовывать свои идеи в результаты с минимально возможной задержкой или узким местом благодаря удобству для пользователей, модульности и расширяемости. Он поддерживает сверточные и рекуррентные нейронные сети. Он работает на центральном процессоре (ЦП) и графическом процессоре (ГП). Я считаю, что вскоре он будет работать на Tensor Processing Unit (TPU) Google, потому что он основан на Tensorflow. Он получил более широкое признание как в промышленности, так и в исследовательском сообществе. Если вы используете Netflix, Uber, Yelp, Square и другие, то взаимодействовали с Keras.

Модели Keras легко развертываются на большем количестве платформ, чем другие платформы глубокого обучения. На iOS с использованием CoreML, Android с использованием TensorFlow Android rumtime, в браузере по сравнению со средами выполнения JavaScript с ускорением на GPU, такими как keras.js и WnDNN, в Google Cloud с помощью TensorFlow-Serving, на Raspberry PI и т. д.

Установка Keras

Keras лучше работает на Linux, и для его установки требуется система с:

  • 32 или 64 битная операционная система,
  • минимум от 4 до 8 ГБ ОЗУ

В качестве альтернативы вы можете использовать облачные сервисы, такие как Amazon Web Services, Google Collaboratory — это бесплатно, Microsoft Azure и т. д.

Чтобы установить Keras в вашей локальной системе на бэкенде tensorflow, после установки Anaconda вам необходимо создать среду, используя:

$ conda create — имя (имя вашей среды)

Активировать среду

Активация источника $ (ваша среда)

Обновление и обновление

$ sudo apt-get update

$ sudo apt-get upgrade

Установить все зависимости

$ sudo apt-get install python-pip3 python3-dev

$ sudo apt-get install python3-numpy python3-scipy python3-matplotlib python-yaml

$ sudo apt-get install graphviz

Установить Тензорфлоу

$ conda установить тензорный поток

Установить Керас

$ conda установить keras

Запуск для проверки вашей установки

Python 3.6.4 | Anaconda, Inc.| (по умолчанию, 16 января 2018 г., 18:10:19)

[GCC 7.2.0] для Linux

Введите "помощь", "авторское право", "кредиты" или "лицензия" для получения дополнительной информации.

››› импортировать тензорный поток как tf

/home/triple_o/anaconda3/envs/ke_tensor/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Преобразование второго аргумента issubdtype из `float` в `np.floating ` устарел. В будущем он будет рассматриваться как `np.float64 == np.dtype(float).type`.

из ._conv импортировать register_converters как _register_converters

››› импортировать keras как k

Использование серверной части TensorFlow.

>>>

Реализация глубокого обучения с использованием Keras

Использование Keras для реализации глубокого обучения напоминает мне концепцию игры с кубиками от Lego, датской компании, которая производит игрушки, состоящие в основном из взаимосвязанных пластиковых кубиков. Сначала у вас есть проблема, которую вы намереваетесь решить с помощью CNN, такой как классификация изображений, или RNN, такая как текст или секвенирование генома, или обе проблемы, как ребенок, пытающийся описать свое воображение своей подруге.

Первый шаг — определить ваши тренировочные данные. Точно так же, как ребенок сортирует различные части кубиков Lego, нужно определить набор обучающих данных как тензоры (входные и целевые), поскольку данные, используемые в NN, представлены в тензорах. Тензоры — это контейнеры данных в NN, варьирующиеся от 0-мерных (0D) тензоров (скаляров) до 5D-тензоров для хранения видеокадров.

Во-вторых, определите сеть слоев или модель. Точно так же, как ребенок выбирает план и начинает создание задуманного воображения, Keras предлагает вам возможность построить свою модель с использованием либо последовательного API, либо функционального API. Последовательный API требует, чтобы вы помещали слой поверх другого; кирпичик над другим для построения модели, которая является наиболее распространенной архитектурой, в то время как функциональный API предоставляет вам возможность построить произвольную архитектурную модель, для которой требуется либо общий слой (средство повторного использования слоя или модели, как функция на любом языке программирования) , несколько входов (текст и изображение) или несколько выходов (подпись к изображению). Простая модель с использованием последовательного API показана ниже:

последовательный импорт из keras.models

импорт из keras.layers Dense

модель = Sequential()

model.add(layers.Dense(32, активация=’relu’, input_shape=(784,)))

model.add(layers.Dense(10, активация=’softmax’))

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

model.compile(optimizer = ‘rmsprop’, loss=’binary_crossentropy/categorial_crossentropy.. в зависимости от вашей задачи’, metrics = [‘acc’])

Наконец, повторите свои тренировочные данные, вызвав метод fit(), как показано ниже:

model.fit(x_train, y_train, epochs = 10, batch_size=32, validation_split = 0,2)

Схематически реализация модели Keras показана ниже:

С нашей точки зрения Lego у вас есть следующее. Что это может быть сложно для ребенка? Никогда не недооценивайте силу воображения.

Ниже приведена шпаргалка по Keras для www.datacamp.com.

Поверьте мне, Keras так же прост, как кажется. Если вы сомневаетесь, спросите Шолле или других пользователей на https://groups.google.com/forum/#!forum/keras-users или https://keras-slack-autojoin.herokuapp.com/.

Заключительные слова

Спасибо команде Keras AISaturdays:

Олалекан Олапеджу

Адеринто Садик [email protected] 07017734142

Олусегун Комолафе, [email protected], github:@olusegun23

Ссылки на ресурсы

Глубокое обучение с помощью Python, Франсуа Шолле

https://keras.io

www.datacamp.com для шпаргалки для Keras

изображения: www.google.com