Зачем использовать Keras?
На сегодняшний день существует множество фреймворков глубокого обучения. Зачем нужно использовать именно Keras, а не любой другой? Вот некоторые из областей, в которых Keras выглядит принципиально лучше альтернативных вариантов.
Keras учитывает опыт разработчиков.
- Keras — это API, разработанный для людей, а не для машин. Keras использует передовые методы снижения когнитивной нагрузки: он предлагает согласованный и простой API, минимизирует количество действий пользователя, необходимых для решения распространенных задач, предоставляет четкую и действенную обратную связь в случае возникновения ошибок.
- Все это делает Keras простым в изучении и использовании. Будучи пользователем Keras, вы становитесь более продуктивным, получаете возможность воплощать все ваши идеи быстрее своих конкурентов, что может позволит вам выигрывать соревнования по машинному обучению.
- Эта простота использования не ведет к ограничению гибкости: поскольку Keras интегрируется с языками более низкого уровня (в частности TensorFlow), у вас появляется возможность реализовать все задачи, которые вы могли бы решить на базовом языке. В частности, как и tf.keras, API Keras легко интегрируется с вашими рабочими задачами TensorFlow.
Keras широко применяется в промышленности и исследовательском сообществе.
Диаграмма фреймерков глубокого обучения, рассчитанная Джеффом Хейлом на основе 11 источников данных по 7 категориям.
С середины 2018 Keras получил признание у более чем 250 тыс. персональных пользователей в различных областях. Это больше, чем в любом другом фреймворке, за исключением TensorFlow (при том, что API Keras является официальным фронтендом TensorFlow, через модуль tf.keras).
Вы уже не раз сталкивались с приложениями, созданными с помощью Keras — Netflix, Uber, Yelp, Instacart, Zocdoc, Square и др. Keras особенно популярен в стартапах, которые берут принципы глубокого обучения за основу своих продуктов.
Keras является одним из лидеров у исследователей глубокого обучения, занимая второе место по количеству упоминаний в научных статьях, загруженных на сервер arXiv.org. Keras также используется в исследованиях, проводимых большими научными компаниями, в частности CERN и NASA.
Keras позволяет легко превратить модель в готовый продукт.
Модели, созданные в Keras могут быть легко развернуты на большем количестве платформ, чем у любого другого фреймворка глубокого обучения:
- На iOS через Apple CoreML (поддержка Keras официально предоставляется Apple). Учебник.
- На Android через среду исполнения TensorFlow. (Пример: приложение Not Hotdog).
- В браузере с помощью графического ускорителя JavaScript (Keras.js и WebDNN).
- В Google Cloud, через TensorFlow-Serving.
- В веб-приложении Python (например: приложение Flask).
- На JVM, через импорт модели DL4J, предоставляемый SkyMind.
- На Raspberry Pi.
Keras поддерживает несколько бэкенд движков и не блокирует вас в пределах одной экосистемы.
Вы можете разрабатывать свои модели Keras с помощью различных бэкендов глубокого обучения. Главная особенность состоит в том, что любая модель, использующая только встроенные слои, будет переносимой из одного бэкенда в другой. Доступные бэкенды:
- TensorFlow (от Google)
- CNTK (от Microsoft)
- Theano
У Amazon также есть свой фреймворк Keras, который использует MXNet в качестве бэкенда.
Таким образом, ваша модель Keras может быть обучена на различных аппаратных средствах (помимо процессоров):
- NVIDIA GPUs
- Google TPUs, через бэкенд TensorFlow и Google Cloud
- Графические процессоры с поддержкой OpenCL, такие как AMD (через бэкенд PlaidML Keras)
Keras обладает мощной поддержкой multi-GPU и распределенной поддержкой обучения.
- Keras имеет встроенную поддержку для параллельной обработки данных с помощью multi-GPU
- Horovod, от Uber, имеет первоклассную поддержку моделей Keras.
- Модели Keras можно превратить в оценочные функции TensorFlow и обучить их работе на кластерах графических процессоров в Google Cloud.
- Keras можно запускать на Spark через Dist-Keras (из CERN) и Elephas.
Разработка Keras поддерживается ключевыми компаниями в экосистеме глубокого обучения.
Разработка Keras поддерживается главным образом Google, а API Keras поставляется в TensorFlow как tf.keras. Кроме того Microsoft поддерживает бэкенд CNTK Keras. Amazon AWS поддерживает фреймворк MXNet Keras. В разработке участвуют и другие крупные компании: NVIDIA, Uber, Apple (с CoreML) и др.