Last: 6808(?)
Major Features
Apple Core ML model converter
Support for Keras v1.2.2
API Changes
Added `CachedOp`. You can now cache the operators that’s called frequently with the same set of arguments to reduce overhead.
Added sample_multinomial for sampling from multinomial distributions.
Added `trunc` operator for rounding towards zero.
Added linalg_gemm, linalg_potrf, ... operators for lapack support.
Added verbose option to Initializer for printing out initialization details.
Added DeformableConvolution to contrib from the Deformable Convolutional Networks paper.
Added float64 support for dot and batch_dot operator.
`allow_extra` is added to Module.set_params to ignore extra parameters.
Added `mod` operator for modulo.
Added `multi_precision` option to SGD optimizer to improve training with float16. Resnet50 now achieves the same accuracy when trained with float16 and gives 50% speedup on Titan XP.
Performance Improvements
ImageRecordIter now stores data in pinned memory to improve GPU memcopy speed.
Bugfixes
Cython interface is fixed. `make cython` and `python setup.py install --with-cython` should install the cython interface and reduce overhead in applications that use imperative/bucketing.
Fixed various bugs in Faster-RCNN example: https://github.com/dmlc/mxnet/pull/6486
Fixed various bugs in SSD example.
Fixed `out` argument not working for `zeros`, `ones`, `full`, etc.
`expand_dims` now supports backward shape inference.
Fixed a bug in rnn. BucketingSentenceIter that causes incorrect layout handling on multi-GPU.
Fixed context mismatch when loading optimizer states.
Fixed a bug in ReLU activation when using MKL.
Fixed a few race conditions that causes crashes on shutdown.
Refactors
Refactored TShape/TBlob to use int64 dimensions and DLTensor as internal storage. Getting ready for migration to DLPack. As a result TBlob::dev_mask_ and TBlob::stride_ are removed.
Known issues
- Inception-V3 model can be converted into CoreML format using the converter but is unable to run on Xcode.
How to build MXNet
Please follow the instructions at https://mxnet.incubator.apache.org/get_started/install.html except do not clone the git repo and rather use the tarball provided at https://github.com/apache/incubator-mxnet/releases .
Keras 1.2.2 with MXNet Backend
Highlights
- Adding Apache MXNet backend for Keras 1.2.2.
- Easy to use multi-gputraining with MXNet backend.
- High-performance model training in Keras with MXNet backend.
Getting Started Resources
- Installation - https://github.com/dmlc/keras/wiki/Installation
- How to use Multi-GPU for training in Keras with MXNet backend - https://github.com/dmlc/keras/wiki/Using-Keras-with-MXNet-in-Multi-GPU-mode
- For more examples explore keras/examples directory.
- Source Repo - https://github.com/dmlc/keras
For more details on unsupported functionalities, known issues and resources refer to release notes - https://github.com/dmlc/keras/releases
Apple CoreML Converter
You can now convert your MXNet models into Apple CoreML format so that they can run on Apple devices which means that you can build your next iPhone app using your own MXNet model!
List of layers that can be converted:
- Activation
- Batchnorm
- Concat
- Convolution
- Deconvolution
- Dense
- Elementwise
- Flatten
- Pooling
- Reshape
- Softmax
- Transpose
With the above layers, this tool can convert models that are similar to:
- Inception
- Network-In-Network
- Squeezenet
- Resnet
- Vgg
Requires:
- MacOS - High Sierra 10.13
- Xcode 9
- Coremltools 0.5.0 or greater (pip install coremltools)
- Mxnet 0.10.0 or greater (Installation Instructions)
- Yaml (pip install pyyaml)
- Python 2.7
Example:
In order to convert, say a squeezenet model (which can be downloaded from here), you can execute the following command: (assuming you are in the directory where mxnet_coreml_converter.py resides):
python mxnet_coreml_converter.py --model-prefix='squeezenet_v1.1' --epoch=0 --input-shape='{"data":"3,227,227"}' --mode=classifier --pre-processing-arguments='{"image_input_names":"data"}' --class-labels classLabels.txt --output-file="squeezenetv11.mlmodel"
You can find explanations for each parameter along with more examples here.
In order to use the generated CoreML model file into your project, refer to Apple's tutorial here.