Keras team has announced a new version 2.2.0 with notable features to allow developers to perform deep learning with ease. This release has brought new API changes, new input modes, bug fixes and performance improvements to the high-level neural network API.
Keras is a popular neural network API which is capable of running on top of TensorFlow, CNTK or Theano. This Python API is developed with a focus on bringing fast experimentation results, thus taking least possible delay while doing research. It is a highly efficient library allowing easy and fast prototyping, and can even run seamlessly on CPU and GPU.
Some of the noteworthy changes available in Keras 2.2.0:
New areas of improvements
- A new API called Model subclassing is added for model definition.
- They have added a new input mode which provides the ability to call models on TensorFlow tensors directly (however this is applicable to TensorFlow backend only).
- More improved feature coverage of Keras with the CNTK and Theano backends.
- Lots of bug fixes and performance improvements are done to the Keras API
- Now, Keras engine will follow a much more modular structure, thus improving code structure, code health, and reduced test time.
- Keras modules applications and preprocessing are now externalized to their own repositories such as keras-applications and keras-preprocessing respectively.
New API changes
- MobileNetV2 application added which is available for all backends.
- Enabled CNTK and Theano support for applications Xception and MobileNet. They have also extended their support for layers SeparableConv1D, SeparableConv2D, as well as the backend methods separable_conv1d and separable_conv2d. which was previously only available for TensorFlow.
- Now you can feed symbolic tensors to models, with TensorFlow backend.
- Support for input masking in the TimeDistributed layer.
- ReLU activation is made easier to configure while retaining easy serialization capabilities by adding an advanced_activation layer ReLU.
In order to have a complete list of new API changes, you can visit Github.
- They have removed the legacy Merge layers and their related functionalities which were the remains of Keras 0. These layers were deprecated in May 2016, with full eviction schedules for August 2017. From now on models from the Keras 0 API using these layers will not be loaded with Keras 2.2.0 and above.
- The base initializer called truncated_normal now return values that are scaled by ~0.9 thus providing the correct variance value after truncation.
For the full list of updates, you can refer the release notes.