You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

New Features - Added Scala Inference APIs

  • The new MXNet Scala Inference APIs offers an easy-to-use, and Scala Idiomatic and thread-safe high level APIs for performing predictions with deep learning models trained with MXNet.
  • New ImageClassifier class provides APIs for classification tasks on a Java BufferedImage using a pre-trained model you provide.
  • New ObjectDetector class provides APIs for object and boundary detections on a Java BufferedImage using a pre-trained model you provide.

New Features - Added module to import ONNX models into MXNet

 

 

New Features - Added support for Model Quantization with Calibration

  • Implemented model quantization by adopting the TensorFlow approach with calibration by borrowing the idea from Nvidia's TensorRT
  • The focus of this work is on keeping quantized models (ConvNets for now) inference accuracy loss under control when compared to their corresponding FP32 models. 
  • Please see the example on how to quantize a FP32 model with or without calibration. (#9552)

New Features - Added Exception Handling Support for Operators

  • Implemented Exception Handling Support for Operators in MXNet. 
  • Transports backend C++ exceptions to the different language front-ends and prevent crashes when exception is thrown during operator execution. (#9681)

New Features - Enhanced FP16 support

  • Adds support for distributed mixed precision training with FP16. It supports storing of master copy of weights in float32 with the multi_precision mode of optimizers. (#10183)
  • Improved speed of float16 operations on x86 CPU by 8 times through F16C instruction set. 
  • Added support for more operators to work with FP16 inputs. (#10125, #10078, #10169)
  • Added a tutorial on using mixed precision with FP16. (#10391)

New Features - Added Profiling enhancements

  • Built-in profiler enhanced to support native Intel:registered: VTune:tm: Amplifier objects such as Task, Frame, Event, Counter and Marker from both C++ and Python -- which is also visible in the Chrome tracing view. 

  • Runtime tracking of symbolic and imperative operators as well as memory and API calls. 

  • Tracking and dumping of aggregate profiling data. 

  • Profiler also no longer affects runtime performance when not in use.

 

  • Added Scala Inference APIs (#9678): MXNet Scala Inference API
  • Added module to import ONNX models into MXNet (#9963): Proposal: ImportExport module
  • Added support for Model Quantization with Calibration (#9552). 
  • Added Exception Handling support for operators and iterators (#9681): Improved Exception Handling in MXNet
  • Added MKLDNN support for MXNet (#9677): MKLDNN integration
  • Added FP16 support for distributed training (#10183).
  • Added Profiling enhancements - VTune objects, individual operator profiling, C API profiling, Memory usage profiling (#8972)

Bug-fixes

  • Fixed tests - Flakiness/Bugs - (#9598, #9951, #10259, #10197, #10136, #10422). Please see: https://github.com/apache/incubator-mxnet/projects/9
  • Fix cudnn_conv and cudnn_deconv deadlock (#10392).
  • Fixed uncaught exception for bucketing module when symbol name not specified (#10094).
  • Fixed regression output layers (#9848).
  • Fixed crash with mx.nd.ones (#10014).
  • Fixed sample_multinomial crash when get_prob=True (#10413).
  • Fixed buggy type inference in correlation (#10135).
  • Fixed race condition for CPUSharedStorageManager->Free and launched workers at iter init stage to avoid frequent relaunch (#10096).
  • Fixed DLTensor Conversion for int64 (#10083).
  • Fixes for profiler (#9932, #10306)
  • Fixed ndarray assignment issues (#10022, #9981).
  • Fixed incorrect indices generated by device row sparse pull (#9887).
  • Fixed print_summary bug in visualization module (#9492).
  • Fixed cast storage support for same stypes (#10400).
  • Fixed a race condition in `io.LibSVMIter` with batch size is large (#10124).

Performance Improvements

  • Replaced std::swap_ranges with memcpy (#10351)
  • Implemented DepthwiseConv2dBackwardFilterKernel which is over 5x faster (#10098)
  • Implemented CPU LSTM Inference (#9977)
  • Added Layer Normalization in C++ (#10029)
  • Optimized Performance for rtc (#10018)
  • Improved CPU performance of  ROIpooling operator by using OpenMP (#9958)
  • Accelerated the calculation of F1 (#9833)

API Changes

  • Added copy flag for astype (#10347).
  • Added context parameter to Scala Infer API - ImageClassifier and ObjectDetector (#10252).
  • Added axes support for dropout in gluon (#10032).
  • Added default `ctx` to cpu for `gluon.Block.load_params` (#10160).
  • Added support for variable sequence length in gluon.RecurrentCell (#9934).
  • Added convenience fluent method for squeeze op (#9734).
  • Made array.reshape compatible with numpy (#9790).
  • Added axis support and gradient for L2norm (#9740)

 

Sparse Support

  • Added support for multi-GPU training with "row_sparse" weights using "device" KVStore (#9987).
  • Added `Module.prepare` API for multi-GPU and multi-machine training with "row_sparse" weight (#10285)
  •  Added 'deterministic' option for `contrib.SparseEmbedding` operator
  • Added `sparse.broadcast_mul` and `sparse.broadcast_div` with CSRNDArray and 1-D dense NDArray
  • Added sparse support for Custom Operator (#10374)
  • Added Sparse feature for Perl. (#9988)
  • Added force_deterministic option for sparse embedding (#9882).
  • Improved sparse SGD, sparse AdaGrad and sparse Adam optimizer speed on GPU by 30x (#9561, #10312, #10293, #10062).
  • Improved 'sparse.retain' performance on CPU by 2.5x (#9722)
  • Add `sparse.where` with condition being csr ndarray (#9481)
  • Added guide for implementing sparse ops (#10081).

Deprecations

  • Deprecated profiler_set_state (#10156).

Other Features

  • Added constant parameter for gluon (#9893).
  • Added contrib.rand.zipfian (#9747).
  • Added Gluon PreLU, ELU, SELU, Swish activation layers for Gluon (#9662)
  • Added Squeeze Op (#9700).
  • Added multi-proposal operator (CPU version) and fixed bug in multi-proposal operator (GPU version) (#9939).
  • Added in Large-Batch SGD with a warmup, and a LARS startegy. (#8918)
  • Added Language Modelling datasets and Sampler (#9514).
  • Added instance norm and reflection padding to Gluon (#7938).
  • Added micro-averaging strategy for F1 metric (#9777).
  • Added Softsign Activation Function (#9851).
  • Added eye operator, for default storage type (#9770).
  • TVM bridge support to JIT NDArray Function by TVM (#9880).
  • Added float16 support for correlation operator and L2Normalization operator (#10125, #10078).
  • Added random shuffle implementation for NDArray (#10048).
  • Added load from buffer functions for CPP package (#10261).

Usability Improvements

  • Added embedding learning example for Gluon (#9165).
  •  Added tutorial on how to use data augmenters. (#10055)
  • Added tutorial for Data Augmentation with Masks (#10178)
  • Added LSTNet example (#9512).
  • Added MobileNetV2 example (#9614).
  • Added tutorial for Gluon Datasets and DataLoaders (#10251).
  • Added Language model with Google's billion words dataset (#10025).
  • Added example for custom operator using RTC (#9870).
  • Improved image classification examples (#9799, #9633).
  • Added reshape predictor function to c_predict_api (#9984)


How to build MXNet

Please follow the instructions at https://mxnet.incubator.apache.org/install/index.html

List of submodules used by Apache MXNet (Incubating) and when they were updated last

Submodule:: Last updated by MXNet:: Last update in submodule

  1. cub@:: Jul 31, 2017 :: Jul 31, 2017
  2. dlpack@: Oct 30, 2017 :: Oct 30, 2017
  3. dmlc-core@: April 4, 2018 :: Jan 17, 2017
  4. mshadow@: December 19, 2017 :: Jan 10, 2017
  5. nnvm@: Dec 9, 2017 :: Jan 10, 2017
  6. ps-lite@: Nov 21, 2017 :: Jan 2, 2017
  • No labels