Keras prioritizes developer experience
-
Keras is an API designed for humans, not machines. Keras follows best practices to reduce cognitive difficulties : it provides a consistent and simple API, it minimizes the number of user actions required for common use cases, and provides clear and actionable feedback when users make mistakes.
-
This makes Keras easy to learn and use. As a Keras user, you are more productive and can try more ideas faster than competitors, thus helping you win machine learning competitions .
-
This ease of use does not come at the cost of reduced flexibility: because Keras is integrated with the underlying deep learning language (especially TensorFlow), it allows you to implement anything you can write in the base language. In particular,
tf.keras
as a Keras API, it can be seamlessly integrated with TensorFlow workflows.
Keras is widely adopted by industry and academia
Deep learning framework ranking, calculated by Jeff Hale based on 11 data sources in 7 categories
As of mid-2018, Keras had more than 250,000 individual users. Compared with any other deep learning framework, Keras has a higher application rate in industry and research fields (except TensorFlow, and the Keras API is the official front end of TensorFlow, which is tf.keras
used through modules).
You have been constantly interacting with features built with Keras-it is used on Netflix, Uber, Yelp, Instacart, Zocdoc, Square and many other websites. It is especially popular with startups that use deep learning as the core of their products.
Keras is also a favorite of deep learning researchers, ranking second in the number of scientific papers uploaded to the preprint server arXiv.org . Keras is also used by researchers in large scientific organizations, especially CERN and NASA.
Keras can easily convert models into products
Compared to any other deep learning framework, your Keras model can be easily deployed on a wider range of platforms:
- On iOS, through Apple's CoreML (Apple provides official support for Keras). Here is a tutorial .
- On Android, through the TensorFlow Android runtime, for example: Not Hotdog app .
- In the browser, the GPU-accelerated JavaScript runtime, for example: Keras.js and WebDNN .
- On Google Cloud, through TensorFlow-Serving .
- In the Python webapp backend (such as Flask app) .
- On the JVM, import through the DL4J model provided by SkyMind .
- On the Raspberry Pi.
Keras supports multiple back-end engines and will not lock you into an ecosystem
Your Keras model can be developed based on different deep learning backends . Importantly, any Keras model built using only built-in layers can be ported to all of these backends: you can train the model with one backend and then load it into another backend (for example, for publishing need). Supported backends are:
- Google's TensorFlow backend
- Microsoft's CNTK backend
- Theano backend
Amazon is also developing the MXNet backend for Keras.
In this way, your Keras model can be trained on different hardware platforms other than the CPU:
- NVIDIA GPU
- Google TPU through TensorFlow backend and Google Cloud
- GPUs supported by OpenCL, such as AMD, through PlaidML Keras backend
Keras has powerful multi-GPU and distributed training support
- Keras has built-in support for multi-GPU data parallelism .
- Uber's Horovod has first-class support for Keras model.
- Keras models can be converted into TensorFlow Estimators and trained on the GPU cluster of Google Cloud .
- Keras can run on Spark (via CERN's Dist-Keras ) and Elephas .
Keras' development is supported by key companies in the deep learning ecosystem
The development of Keras is mainly supported by Google, and the Keras API tf.keras
is packaged in TensorFlow. In addition, Microsoft maintains Keras' CNTK backend. Amazon AWS is developing MXNet support. Other companies that provide support include NVIDIA, Uber, and Apple (via CoreML).