newsfilter.io
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., the fit function) 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.contrib as 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.