DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
New Features - Sparse Tensor Support
- Added comprehensive support for sparse matrices. See help on
mx.sym.sparseandmx.nd.sparsefor more info - Added limited cpu support for two sparse formats in
SymbolandNDArray-CSRNDArrayandRowSparseNDArray - Added a sparse dot product operator and many element-wise sparse operators
- Added a data iterator for sparse data input -
LibSVMIter - Added three optimizers for sparse gradient updates:
Ftrl,SGDandAdam - Added
pushandrow_sparse_pullwithRowSparseNDArrayin distributed kvstore
New Features - Gluon and Autograd
Added
Gluonpackage, a high-level interface designed to be easy to use while keeping most of the flexibility of low level API. Gluon supports both imperative and symbolic programming, making it easy to train complex models imperatively with minimal impact on performance. Neural networks (and other machine learning models) can be defined and trained withgluon.nnandgluon.rnnpackages.gluon.Trainernow allows reading and setting learning rate withtrainer.learning_rateproperty.Added
autogradpackage, which enables automatic differentiation of NDArray operations. Enter code in a autograd.record() block to capture the exact path by which each variable was generated. Use *.backward() on any variable to backpropagate.Added
mx.autograd.gradand experimental second order gradient support (most operators don't support second order gradient yet)Added new loss functions -
SigmoidBinaryCrossEntropyLoss,CTCLoss,HuberLoss,HingeLoss,SquaredHingeLoss,LogisticLoss,TripletLossAdded
ConvLSTMtogluon.contribAutograd now supports cross-device graphs. Use
x.copyto(mx.gpu(i))andx.copyto(mx.cpu())to do computation on multiple devices
Other New Features
Added limited support for fancy indexing, which allows you to very quickly access and modify complicated subsets of an array's values.
x[idx_arr0, idx_arr1, ..., idx_arrn]is now supported. Full support coming soon in next release. Checkout master to get a preview.Random number generators in
mx.nd.random.*andmx.sym.random.*now supports both CPU and GPUNDArrayandSymbolnow supports "fluent" methods. You can now usex.exp()etc instead ofmx.nd.exp(x)ormx.sym.exp(x)Added
mx.rtc.CudaModulefor writing and running CUDA kernels from pythonAdded
multi_precisionoption to optimizer for easier float16 training
Performance
- Enabled JIT compilation. Autograd and Gluon hybridize now use less memory and has faster speed. Performance is almost the same with old symbolic style code.
- Full support for NVidia Volta GPU Architecture and Cuda 9. Training is up to 3.5x faster than Pascal when using float16.
API Changes
Operators like
mx.sym.linalg_*andmx.sym.random_*are now moved tomx.sym.linalg.*andmx.sym.random.*. The old names are still available but deprecated.sample_*andrandom_*are now merged asrandom.*, which supports both scalar andNDArraydistribution parameters.
Bug-fixes
Fixed a bug that causes
argsortoperator to fail on large tensorsFixed numerical stability issues when summing large tensors
How to build MXNet
Please follow the instructions at https://mxnet.incubator.apache.org/get_started/install.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@:: 31-Jul :: 28-Aug
2. dlpack@: 08-Sep :: 06-Oct
3. dmlc-core@: 08-Sep:: 06-Oct
4. mshadow@: 03-Oct:: 09-Oct
5. nnvm@: 10-Sep:: 10-Oct
6. ps-lite@: 28-Mar:: 27-Jul