This repository has been archived by the owner on Jul 1, 2024. It is now read-only.
Keras-MXNet 2.1.6
sandeep-krishnamurthy
released this
18 May 23:51
·
472 commits
to master
since this release
Release Notes
Highlights
- Add Apache MXNet backend support in Keras 2.1.6.
- Supports Convolutional Neural Network (CNN) and experimental Recurrent Neural Network (RNN) training and inference.
- Supports high performance, distributed Multi-GPU training of CNN and RNN networks.
- Supports exporting native MXNet Model from Keras-MXNet trained model. Enabling faster research with Keras interface and high performance, large scale inference in production with the native MXNet engine. You can use all language bindings of MXNet (Scala/Python/Julia/R/Perl) for inference on the exported model.
- Add Keras benchmarking utility for performing CNN and RNN benchmarks with standard networks and datasets. Supports benchmarking on CPU, one GPU and multi-GPU distributed training.
- Add keras.utils.to_channels_first() for easy conversion of channels_last data to channels_first.
- PyPi package for keras-mxnet.
pip install keras-mxnet
.
Performance
- Keras-MXNet shows significant improvement in performance with
channels_first
image_data_format. Performance drops withchannels_last
data format. Tutorial - Keras-MXNet CNN benchmarks shows upto 3X performance improvement on GPUs. See Benchmark Results document for more details.
- Keras-MXNet RNN support is experimental. Performance on CPU is known to be upto 2X slower (Related issue). However, performance on GPU shows upto 2X performance improvement.
Unsupported Functionalities
- RNN with Keras-MXNet is experimental and do not support
variable length inputs
andunroll=False
. You need to pad input sequences to make it static length and provideinput_length
and setunroll=True
. See using RNN with Keras-MXNet tutorial for more details. depthwise_conv2d
andseparable_conv2d
operators are not supported.- 18 Keras operators are not supported with MXNet backend. Update operators, symbolic gradient, local_conv1d, local_conv2d, higher order functions, other operator liks cumsum, cumprod, stack, ctc and more. See Operators missing with MXNet backend Github Issue for more details.
- Sparse Tensors are not supported with MXNet backend in this release.
- Unsupported keras/examples list.
- Cross backend models are not supported. Training with TensorFlow backend and loading the Keras model with MXNet backend is not supported.
Known Issues
- MXNet backend performance significantly drops with
channels_last
image_data_format. It is highly recommended to userchannels_first
image_data_format. See performance guide for more details. - MXNet backend do not support
boolean
. For example,in_topk
operator with MXNet backend uses0/1
instead of boolean. Issue depthwise_conv2d
supportsdepth_multiplier=1
only. Issue- LSTM layer fails if dropout is used. Issue
- Models with Custom Loss are not serializable. Issue
Contributions
Thanks to all the contributors for their contributions in this release:
@sandeep-krishnamurthy, @jiajiechen, @karan6181, @roywei, @kalyc
Thanks to Keras1.2-MXNet contributors @howard0su, @yajiedesign, @piiswrong, @kevinthesun.
Other Resources and Getting Started
- Keras-MXNet installation guide - https://github.com/awslabs/keras-apache-mxnet/blob/master/docs/mxnet_backend/installation.md
- Using multi-gpu distributed training - https://github.com/awslabs/keras-apache-mxnet/blob/master/docs/mxnet_backend/multi_gpu_training.md
- Performance tuning guide for Keras with MXNet backend - https://github.com/awslabs/keras-apache-mxnet/blob/master/docs/mxnet_backend/performance_guide.md
- Export MXNet Model from Keras-MXNet - https://github.com/awslabs/keras-apache-mxnet/blob/master/docs/mxnet_backend/save_mxnet_model.md
- Using RNN in Keras-MXNet. Limitations and workarounds - https://github.com/awslabs/keras-apache-mxnet/blob/master/docs/mxnet_backend/using_rnn_with_mxnet_backend.md
- Keras-MXNet benchmark results - https://github.com/awslabs/keras-apache-mxnet/tree/master/benchmark