Software:Keras

From HandWiki
Keras
Original author(s)François Chollet
Developer(s)ONEIROS
Initial release27 March 2015; 10 years ago (2015-03-27)
Written inPython
PlatformCross-platform
TypeFrontend for TensorFlow, JAX or PyTorch (and more)
LicenseApache 2.0

Keras is an open-source library that provides a Python interface for artificial neural networks. Keras was first independent software, then integrated into the TensorFlow library, and later added support for more. "Keras 3 is a full rewrite of Keras [and can be used] as a low-level cross-framework language to develop custom components such as layers, models, or metrics that can be used in native workflows in JAX, TensorFlow, or PyTorch — with one codebase."[1] Keras 3 will be the default Keras version for TensorFlow 2.16 onwards, but Keras 2 can still be used.[2]

History

The name 'Keras' derives from the Ancient Greek word κέρας (Keras) meaning 'horn'.[3]

Designed to enable fast experimentation with deep neural networks, Keras focuses on being user-friendly, modular, and extensible. It was developed as part of the research effort of project ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System),[4] and its primary author and maintainer is François Chollet, who was a Google engineer until leaving the company in 2024.[5] Chollet is also the author of the Xception deep neural network model.[6]

Up until version 2.3, Keras supported multiple backends, including TensorFlow, Microsoft Cognitive Toolkit, Theano, and PlaidML.[7][8][9]

From version 2.4 up until version 3.0, only TensorFlow was supported. Starting with version 3.0 (as well as its preview version, Keras Core), however, Keras has become multi-backend again, supporting TensorFlow, JAX, and PyTorch.[10] It now also supports OpenVINO.

Features

Keras contains numerous implementations of commonly used neural-network building blocks such as layers, objectives, activation functions, optimizers, and a host of tools for working with image and text data to simplify programming for deep neural networks.[11] The code is hosted on GitHub, and community support forums include the GitHub issues page.[12]

In addition to standard neural networks, Keras has support for convolutional and recurrent neural networks. It supports other common utility layers like dropout, batch normalization, and pooling.[13]

Keras allows users to produce deep models on smartphones (iOS and Android), on the web, or on the Java Virtual Machine.[8] It also allows use of distributed training of deep-learning models on clusters of graphics processing units (GPU) and tensor processing units (TPU).[14]

See also

References

  1. "Keras: Deep Learning for humans". https://keras.io/keras_3/. 
  2. "What's new in TensorFlow 2.16" (in en). https://blog.tensorflow.org/2024/03/whats-new-in-tensorflow-216.html. 
  3. Team, Keras. "Keras documentation: About Keras 3" (in en). https://keras.io/about/. 
  4. "Keras Documentation". https://keras.io/#why-this-name-keras. 
  5. "Farewell and thank you for the continued partnership, Francois Chollet!" (in en). https://developers.googleblog.com/en/farewell-and-thank-you-for-the-continued-partnership-francois-chollet/. 
  6. Chollet, François (2016). "Xception: Deep Learning with Depthwise Separable Convolutions". arXiv:1610.02357 [cs.CV].
  7. "Keras backends". https://keras.io/backend/. 
  8. 8.0 8.1 "Why use Keras?". https://keras.io/why-use-keras/. 
  9. "R interface to Keras". https://keras.rstudio.com/. 
  10. Chollet, François; Usui, Lauren (2023). "Introducing Keras Core: Keras for TensorFlow, JAX, and PyTorch.". https://keras.io/keras_core/announcement/. 
  11. Ciaramella, Alberto; Ciaramella, Marco (2024). Introduction to Artificial Intelligence: from data analysis to generative AI. Intellisemantic Editions. ISBN 9788894787603. 
  12. "Keras-team/Keras". https://github.com/keras-team/keras. 
  13. "Core - Keras Documentation" (in en). https://keras.io/layers/core/. 
  14. "Using TPUs | TensorFlow" (in en). https://www.tensorflow.org/guide/using_tpu.