Interview
François Chollet: History of Keras and TensorFlow | AI Podcast Clips
Keras Origin and Timeline
- Development began in February 2015 by François Chollet (implied author) to address a lack of reusable open-source LSTMs for Recurrent Neural Networks (RNNs).
- The name "Keras" was selected the day prior to the official release.
- The project was released to the public in March 2015.
- At the time of inception, the deep learning community was small (fewer than 10,000 practitioners) and tooling was underdeveloped.
Historical Framework Landscape (2014–2015)
- Caffe: Was the dominant deep learning library, particularly for Computer Vision (the most popular subfield), using static YAML configuration files for model definition.
- Theano: The primary library used for research, heavily utilized in Kaggle competitions for RNNs prior to Keras.
- Torch7: A C-based library used by Chollet that utilized Python for model definition but lacked Python-native ease of use.
- Lasagne: An early Python-based Theano library developed around late 2014, preceding Keras.
Core Design Decisions
- Dynamic Code Definition: Keras was designed to define models via Python code rather than static configuration files (YAML), contrasting with the mainstream approach of Caffe and Caffe2.
- Usability Focus: The architecture was inspired by
scikit-learn, aiming to reduce complex training loops into single function calls (e.g., thefitfunction) to make deep learning accessible to data scientists. - Backend Abstraction: In December 2015, Keras was refactored to abstract backend functionality, allowing the same codebase to run on multiple engines (TensorFlow and Theano).
Integration with TensorFlow
- Initial Adoption: Chollet joined Google in mid-2015 for computer vision research, independent of Keras; upon exposure to early TensorFlow, he recognized it as an improved Theano successor.
- Porting: In December 2015, Keras was ported to run on TensorFlow. During this period, Theano remained the default backend due to stability and speed advantages for RNNs.
- Formal Integration: In October 2016, TensorFlow lead Rajat Monga invited Chollet to transition full-time to integrate Keras tightly into TensorFlow.
- Deployment Path: Keras was initially housed in
tensorflow.contribas a temporary, TensorFlow-only version before moving into TensorFlow Core.
Current Focus: TensorFlow 2.0 and Beyond
- Eager Execution: Identified as a critical feature enabling easier debugging, immediate evaluation, and flexible custom training loops.
- Workflow Spectrum: TensorFlow 2 eliminates the previous trade-off between ease of use and flexibility, allowing users to:
- Write custom models and training loops from scratch using low-level APIs.
- Utilize high-level Keras workflows for rapid prototyping.
- Unified API: The framework now supports a seamless range of workflows suitable for diverse profiles, from researchers to data scientists, within a single library.
- User Experience: Chollet characterizes TensorFlow 2.0 as a "delightful product" compared to the complexity of TensorFlow 1.