Ar­ti­fi­cial in­tel­li­gence plays a key role in today’s digital world – including in the de­vel­op­ment and use of video games (or other ap­pli­ca­tions) as well as in web services, devices, and machines. One of the most important fields of research and subfields that in­ten­sive­ly explores the key features of “virtual in­tel­li­gence” is neural networks, and the im­ple­men­ta­tion of neural networks is greatly sim­pli­fied by the use of Keras. Read on to learn what this open source library is and how it can simplify the de­vel­op­ment of neural networks.

What is Keras?

Keras is an open source library (MIT license) written in Python which is primarily based on the work done by Google developer François Chollet as part of project ONEIROS (Open-ended Neuro-Electronic Intel­li­gent Robot Operating System). The first version of this platform-in­de­pen­dent software was published on March 28, 2015. The purpose of this library is to enable neural networks to be rapidly developed. In this case, Keras is not a separate framework but a beginner-friendly interface (API) for accessing and pro­gram­ming a variety of machine learning frame­works. Theano, Microsoft Cognitive Toolkit (formerly CNTK) and Ten­sor­Flow are among some of the frame­works supported by Keras.

Note

As of the release of Ten­sor­Flow 1.4, Keras has become an integral part of the Ten­sor­Flow kernel API. Nev­er­the­less, this library will continue to be developed as in­de­pen­dent software since it was intended to be an interface for different frame­works from the start, and this is still the case.

The current version of Keras is com­pat­i­ble with Python 2.7 and higher. The full project is ac­ces­si­ble at any time via the official Keras GitHub repos­i­to­ry.

How does Keras work?

Keras is a library that works with models. It provides the building blocks for de­vel­op­ing complex deep learning models. Unlike in­de­pen­dent frame­works, this open source software does not deal with simple low-level op­er­a­tions itself. Instead, it uses the libraries from as­so­ci­at­ed machine learning frame­works for this purpose. These act as a kind of back-end engine for Keras. Since the idea is to be modular, the desired layers for the neural network being developed are connected to each other without the actual backend of the selected framework needing to be un­der­stood or con­trolled by the Keras user.

As pre­vi­ous­ly mentioned, Keras uses the three tools Ten­sor­Flow, Theano, and Microsoft Cognitive Toolkit. These have ready-to-use in­ter­faces which enable fast intuitive access to the re­spec­tive backend. There is no need to decide on a single framework because you can easily switch between the different backends. It is also possible to choose a different backend from the three solutions named here. You just need to specify it in the con­fig­u­ra­tion file (Keras.json), and it has to have the following three functions available: “place­hold­er”, “variable” and “function”.

Tip

You can find more detailed in­for­ma­tion about back-end man­age­ment and general usage in our extensive Keras tutorial.

What are the ad­van­tages of using Keras?

Keras has been an excellent addition to the existing tools out there for de­vel­op­ing neural networks since this open source library greatly sim­pli­fies the process. Usability is key here. Keras functions as an interface that is designed ex­plic­it­ly for humans and only sec­on­dar­i­ly for machines. User actions are reduced to a minimum, and if errors still occur, relevant feedback is provided to help correct them. This makes it com­par­a­tive­ly easy to learn how to use Keras – and allows for an increased level of pro­duc­tiv­i­ty. Fur­ther­more, due to the in­cor­po­ra­tion of deep learning frame­works, this sim­plic­i­ty is not ac­com­pa­nied by func­tion­al lim­i­ta­tions. You can integrate any desired features via the cus­tomized in­ter­faces (or disable them as needed).

Here is an overview of some ad­di­tion­al ad­van­tages provided by Keras:

  • Broad platform support for developed models: Models developed with Keras can be easily deployed on different platforms. For example, iOS (Apple CoreML), Android (Keras Ten­sor­Flow Android Runtime), Google Cloud, and Raspberry Pi setups are supported by default.
  • Support for multiple back-end engines: Keras gives you the freedom to choose the backend you want and combine multiple backends. You can also transfer a developed model to another backend at any time.
  • Out­stand­ing multi-GPU support: When using Keras, the computing work for the developed deep learning processes can easily be dis­trib­uted over multiple graphics chips or cards.
  • De­vel­op­ment power from major companies: The main­te­nance and further de­vel­op­ment of Keras is supported by the most prominent companies in the industry. Google, Amazon AWS, Microsoft, Apple, and Nvidia are some of the companies involved in the project.

What projects is Keras suitable for?

As a universal interface for machine learning platforms, Keras is currently being used in a variety of projects in the field of AI. By mid-2018, this library already had more than 250,000 in­di­vid­ual users – and this number has greatly increased since its inclusion in the Ten­sor­Flow software. Due to the freedom to choose the un­der­ly­ing framework, free licensing, and its platform in­de­pen­dence, Keras is the perfect all-rounder solution for pro­fes­sion­al neural network ap­pli­ca­tions in both industry and research. For example, well-known companies such as Netflix, Uber, and Yelp as well as or­ga­ni­za­tions such as NASA and CERN use Keras or the Ten­sor­Flow Keras package in their projects.

Go to Main Menu