На этом шаге мы приведем краткие исторические факты развития этих библиотек.
Среда Keras старше TensorFlow на восемь месяцев. Она была выпущена в марте 2015 года, а TensorFlow - в ноябре. Вы можете спросить: если Keras основана на TensorFlow, как она могла появиться раньше? Дело в том, что первоначально Keras основывалась на Theano - еще одной библиотеке для работы с тензорами, обеспечивавшей автоматическое дифференцирование и поддержку вычислений на графических процессорах, самой первой в своем классе. Theano была разработана в Монреальском институте алгоритмов обучения (Montreal Institute for Learning Algorithms, MILA) при Монреальском университете и во многих отношениях может считаться предшественницей TensorFlow. В ней впервые была реализована идея использования статических графов вычислений для автоматического дифференцирования и компиляции кода для выполнения на CPU и GPU.
В конце 2015 года, после выпуска TensorFlow, архитектура Keras была преобразована для поддержки нескольких базовых библиотек: появилась возможность выбора между Theano и TensorFlow, при этом переключение было таким же простым, как изменение переменной окружения. К сентябрю 2016 года TensorFlow достигла достаточно высокого уровня технической зрелости, чтобы использовать ее в качестве опции по умолчанию. В 2017 году в Keras была добавлена поддержка еще двух библиотек тензорных операций: CNTK (разработана в Microsoft) и MXNet (в Amazon). В настоящее время разработка Theano и CNTK прекратилась, а MXNet не получила широкого распространения за пределами Amazon. Keras снова стала библиотекой, основанной на одном тензорном фреймворке - TensorFlow.
Keras и TensorFlow уже много лет успешно сосуществуют вместе. В течение 2016 и 2017 годов Keras приобрела широкую известность как удобное средство для разработки приложений TensorFlow, привлекающее новых пользователей в экосистему TensorFlow. К концу 2017 года большинство пользователей фреймворка TensorFlow использовали его через Keras или в сочетании с Keras. В 2018 году руководство TensorFlow выбрало Keras в качестве официального высокоуровневого интерфейса TensorFlow. В результате библиотека Keras заняла центральное место в версии TensorFlow 2.0, выпущенной в сентябре 2019 года, - кардинально переделанного комплекса TensorFlow и Keras, учитывающего отзывы пользователей и технический прогресс за предыдущие четыре года.
Теперь мы готовы начать использовать код для Keras и TensorFlow на практике. Приступим.
На следующем шаге мы рассмотрим настройку окружения для глубокого обучения.