На этом шаге мы рассмотрим, что такое Keras.
Keras - это библиотека глубокого обучения для Python, основанная на TensorFlow, которая обеспечивает удобный способ определения и тренировки моделей глубокого обучения. Первоначально Keras создавалась для исследований с целью упростить эксперименты с глубоким обучением.
Благодаря TensorFlow библиотека Keras может работать на различных типах оборудования (рисунок 1) - графическом, тензорном или обычном процессоре - и поддерживает простую возможность распределения вычислений между тысячами компьютеров.
Рис.1. Keras и TensorFlow: TensorFlow - это низкоуровневая платформа тензорных вычислений, а Keras - высокоуровневая библиотека глубокого обучения
Особое внимание в Keras уделяется опыту разработчиков. Данная библиотека предназначена для людей, а не для машин. Она следует передовым методам снижения когнитивной нагрузки, предлагая простые и логичные рабочие процессы, минимизируя количество действий, необходимых для типичных случаев использования, и давая четкую и действенную обратную связь на ошибки пользователя. Это упрощает освоение Keras начинающими исследователями и увеличивает продуктивность экспертов.
По состоянию на конец 2021 года насчитывалось более одного миллиона пользователей Keras: от исследователей, инженеров и специалистов по обработке данных в начинающих и крупных компаниях до аспирантов и любителей. Keras используется в Google, Netflix, Uber, CERN, NASA, Yelp, Instacart, Square и сотнях стартапов, работающих над решением широкого круга задач во всех отраслях. Рекомендации на YouTube для вас подбираются моделями Keras. Беспилотные автомобили Waymo также управляются ими. Keras популярна на Kaggle - веб-сайте, проводящем соревнования по машинному обучению, большинство из которых было выиграно с использованием данного фреймворка.
Такое число пользователей библиотека Keras приобрела потому, что не вынуждает следовать одному "истинному" способу конструирования и обучения моделей. Вместо этого она дает возможность применять широкий спектр подходов, соответствующих уровню подготовки пользователей, от очень высокого до очень низкого. Например, в вашем распоряжении множество способов конструирования моделей и множество способов их обучения, каждый из которых предлагает определенные компромиссы между удобством и гибкостью. Позже мы подробно рассмотрим значительную их часть. Вы можете использовать Keras так же, как использовали бы Scikit-learn - просто вызывая fit() и позволяя фреймворку выполнить свою работу, - или как NumPy, определяя и управляя всеми самыми мелкими деталями.
А значит, все знания, приобретаемые вами в самом начале пути, сохранят актуальность, когда вы станете экспертом. Keras поможет быстро начать работу, а затем постепенно погружаться в рабочие процессы и писать с нуля все больше и больше логики. Вам не придется переключаться на совершенно другой фреймворк, когда вы вырастете от студента до исследователя или от специалиста по данным до инженера глубокого обучения.
Эта философия мало чем отличается от философии самого Python! Некоторые языки (например, объектно-ориентированные или функциональные) дают только один способ написания программ. Python - многопарадигменный язык: он предлагает множество возможных подходов к программированию, прекрасно уживающихся вместе. Это делает Python пригодным для использования в самых разных случаях: для системного администрирования, анализа данных, машинного обучения, веб-разработки... или просто для обучения программированию. Точно так же Keras можно рассматривать как диалект Python для глубокого обучения: удобный язык глубокого обучения, предлагающий множество подходов для пользователей с разным уровнем подготовки.
На следующем шаге мы рассмотрим историю развития этих библиотек.