Keras is a high-level neural-network API created by Francois Chollet and released in 2015. Its design goal, captured in its long-running tagline “Deep Learning for humans,” was to make building neural networks approachable. Where the underlying frameworks expressed models as graphs of low-level tensor operations, Keras let a user stack named layers, choose an optimizer and loss, and call fit, compressing a large amount of boilerplate into a few readable lines of Python.
The library was deliberately built as a front end rather than a complete engine. Keras defined the model-building API and delegated the actual tensor math, gradient computation, and hardware execution to a separate backend. In its early years it ran on top of Theano and then TensorFlow, so the same Keras code could be retargeted by swapping the backend underneath it. This separation of a friendly interface from an interchangeable compute layer became one of its most influential ideas.
That approachability made Keras a common on-ramp into deep learning. Its sequential and functional model-building styles map cleanly onto how people think about networks, and its sensible defaults meant a beginner could train a working model without first understanding sessions, graphs, or manual gradient handling. For teaching, prototyping, and a great deal of applied work, Keras lowered the barrier to entry more than any other tool of its era.
In 2017 Keras was adopted into TensorFlow as its official high-level API, shipped as tf.keras, which made it the recommended way to build models in the most widely deployed framework. For several years Keras and TensorFlow were effectively fused, and most TensorFlow tutorials were really Keras tutorials.
With Keras 3 the project returned to its multi-backend roots in a more ambitious form. As the official repository and FAQ describe, it became a multi-backend framework supporting JAX, TensorFlow, and PyTorch (plus OpenVINO for inference), letting a single model definition run on whichever engine a team prefers. The backend is selected through configuration such as the KERAS_BACKEND environment variable, so the same high-level code can move between ecosystems without being rewritten, carrying forward the original promise of a stable, human-friendly API over interchangeable compute.