Keras – это высокоуровневый API для создания и обучения нейронных сетей. Он предоставляет удобный интерфейс для быстрого создания моделей глубокого обучения с минимальными усилиями.
Keras позволяет легко определять архитектуру нейронной сети, добавлять слои, компилировать модель с выбранным оптимизатором и функцией потерь, обучать модель на данных и тестировать нейронные сети на производительность.
Keras поддерживает множество различных типов слоев (полносвязанные слои, сверточные слои, рекуррентные слои и другие), а также предоставляет возможность работать с различными типами входных данных (изображения, текст, временные ряды и пр.).
Keras также является частью библиотеки TensorFlow, одной из самых популярных и мощных библиотек для разработки нейронных сетей. Он также может использоваться с другими библиотеками глубокого обучения, такими как Theano и Microsoft Cognitive Toolkit (CNTK).
Нацелена на оперативную работу с сетями глубинного обучения, при этом спроектирована так, чтобы быть компактной, модульной и расширяемой. Создана как часть исследовательских усилий проекта ONEIROS (англ. Open-ended Neuro-Electronic Intelligent Robot Operating System); основной автор и ведущий разработчик — инженер Google Франсуа Шолле. Планировалось что Google будет поддерживать Keras в основной библиотеке TensorFlow, однако Шолле выделил Keras в отдельную надстройку, так как согласно концепции Keras является скорее интерфейсом, чем сквозной системой машинного обучения. Keras предоставляет высокоуровневый, более интуитивный набор абстракций, который делает простым формирование нейронных сетей, независимо от используемой в качестве вычислительного бэкенда библиотеки научных вычислений Microsoft работает над добавлением к Keras и низкоуровневых библиотек CNTK.
Библиотека содержит многочисленные реализации широко применяемых строительных блоков нейронных сетей, таких как слои, целевые и передаточные функции, оптимизаторы, и множество инструментов для упрощения работы с изображениями и текстом. Её код размещен на GitHub, а форумы поддержки включают страницу вопросов GitHub, канал Gitter и канал Slack.
Поддерживается распределённое обучение моделей, в том числе на кластерах с GPGPU и тензорными процессорами. Модели, созданные в Keras, могут быть развёрнуты не только на серверных узлах, но и на смартфонах (под управлением iOS и Android) и в браузере (TF.js).