Release Notes

Contents

Release Notes for Version 1.0.0-beta5

Highlights - 1.0.0-beta5 Release

Deeplearning4J

Deeplearning4J: Features and Enhancements

Deeplearning4J: Bug Fixes and Optimizations

Deeplearning4j: Transition Guide, 1.0.0-beta4 to 1.0.0-beta5

Deeplearning4j: 1.0.0-beta5 Known Issues

ND4J and SameDiff

ND4J/SameDiff: Features and Enhancements

ND4J/SameDiff: Bug Fixes and Optimizations

ND4J: Transition Guide, 1.0.0-beta4 to 1.0.0-beta5

ND4J: 1.0.0-beta5 Known Issues

DataVec

DataVec: Features and Enhancements

DataVec: Bug Fixes and Optimizations

RL4J

RL4J: Features and Enhancements

RL4J: Bug Fixes and Optimizations

Arbiter

Bug Fixes and Optimizations

Arbiter: Known Issues

ND4S

ND4S Features and Enhancements




Release Notes for Version 1.0.0-beta4

Highlights - 1.0.0-beta4 Release

Main highlight: full multi-datatype support for ND4J and DL4J. In past releases, all N-Dimensional arrays in ND4J were limited to a single datatype (float or double), set globally. Now, arrays of all datatypes may be used simultaneously. The following datatypes are supported:

ND4J Behaviour changes of note:

DL4J Behaviour changes of note:

Main new methods:

ND4J/DL4J: CUDA - 10.1 support added, CUDA 9.0 support dropped

CUDA versions supported in 1.0.0-beta4: CUDA 9.2, 10.0, 10.1.

ND4J: Mac/OSX CUDA support dropped

Mac (OSX) CUDA binaries are no longer provided. Linux (x86_64, ppc64le) and Windows (x86_64) CUDA support remains. OSX CPU support (x86_64) is still available.

DL4J/ND4J: MKL-DNN Support Added DL4J (and ND4J conv2d etc ops) now support MKL-DNN by default when running on CPU/native backend. MKL-DNN support is implemented for the following layer types:

MKL-DNN support for other layer types (such as LSTM) will be added in a future release.

MKL-DNN can be disabled globally (ND4J and DL4J) using Nd4jCpu.Environment.getInstance().setUseMKLDNN(false);

MKL-DNN can be disabled globally for specific ops by setting ND4J_MKL_FALLBACK environment variable to the name of the operations to have MKL-DNN support disabled for. For example: ND4J_MKL_FALLBACK=conv2d,conv2d_bp

ND4J: Improved Performance due to Memory Management Changes

Prior releases of ND4J used periodic garbage collection (GC) to release memory that was not allocated in a memory workspace. (Note that DL4J uses workspaces for almost all operations by default hence periodic GC could frequently be disabled when training DL4J networks). However, the reliance on garbage collection resulted in a performance overhead that scaled with the number of objects in the JVM heap.

In 1.0.0-beta4, the periodic garbage collection is disabled by default; instead, GC will be called only when it is required to reclaim memory from arrays that are allocated outside of workspaces.

To re-enable periodic GC (as per the default in beta3) and set the GC frequency to every 5 seconds (5000ms) you can use:

Nd4j.getMemoryManager().togglePeriodicGc(true);
Nd4j.getMemoryManager().setAutoGcWindow(5000);

ND4J: Improved Rank 0/1 Array Support

In prior versions of ND4J, scalars and vectors would sometimes be rank 2 instead of rank 0/1 when getting rows/columns, getting sub-arrays using INDArray.get(NDArrayIndex…) or when creating arrays from Java arrays/scalars. Now, behaviour should be more consistent for these rank 0/1 cases. Note to maintain old behaviour for getRow and getColumn (i.e., return rank 2 array with shape [1,x] and [x,1] respectively), the getRow(long,boolean) and getColumn(long,boolean) methods can be used.

DL4J: Attention layers added

Deeplearning4J

Deeplearning4J: Features and Enhancements

Deeplearning4J: Bug Fixes and Optimizations

ND4J and SameDiff

ND4J/SameDiff: Features and Enhancements

ND4J/SameDiff: API Changes (Transition Guide): 1.0.0-beta3 to 1.0.0-beta4

ND4J/SameDiff: Bug Fixes and Optimizations

ND4J: Known Issues

DataVec

DataVec: Features and Enhancements

DataVec: Optimizations and Bug Fixes

Arbiter

Arbiter: Enhancements

Arbiter: Fixes




Release Notes for Version 1.0.0-beta3

Highlights - 1.0.0-beta3 Release

Deeplearning4J

Deeplearning4J: New Features

Deeplearning4J: Bug Fixes and Optimizations

Deeplearning4J: API Changes (Transition Guide): 1.0.0-beta2 to 1.0.0-beta3

Deeplearning4J: Known issues: 1.0.0-beta3

Deeplearing4J: Keras Import

ND4J

ND4J: New Features

ND4J: Bug Fixes and Optimizations

ND4J: API Changes (Transition Guide): 1.0.0-beta2 to 1.0.0-beta3

ND4J: Known issues: 1.0.0-beta3

DataVec

DataVec: New Features

DataVec: Optimizations and Bug Fixes

Arbiter

Arbiter: Fixes

ND4S



Release Notes for Version 1.0.0-beta2

Highlights - 1.0.0-beta2 Release

Deeplearning4J

Deeplearning4J: New Features

Deeplearning4J: Bug Fixes and Optimizations

Deeplearning4J: API Changes (Transition Guide): 1.0.0-beta to 1.0.0-beta2

Deelpearning4J: 1.0.0-beta2 Known Issues

Deeplearing4J: Keras Import

ND4J

ND4J: New Features

ND4J: Bug Fixes and Optimizations

ND4J: Known Issues

ND4J: API Changes (Transition Guide): 1.0.0-beta to 1.0.0-beta2

DataVec

DataVec: New Features

DataVec: Optimizations and Bug Fixes

DataVec: API Changes (Transition Guide): 1.0.0-beta to 1.0.0-beta2

Arbiter

Arbiter: New Features

Arbiter: Fixes

RL4J

ScalNet

ND4S



Release Notes for Version 1.0.0-beta

Highlights - 1.0.0-beta Release

Deeplearning4J

Deeplearning4J: New Features

Deeplearning4J: Bug Fixes and Optimizations

Deeplearning4J: API Changes (Transition Guide): 1.0.0-alpha to 1.0.0-beta

Deelpearning4J: 1.0.0-beta Known Issues

Deeplearing4J: Keras Import

Deeplearning4J: Keras Import - API Changes (Transition Guide): 1.0.0-alpha to 1.0.0-beta

ND4J

ND4J: New Features

ND4J: Known Issues

ND4J: API Changes (Transition Guide): 1.0.0-alpha to 1.0.0-beta

DataVec

DataVec: New Features

DataVec: Optimizations and Bug Fixes

DataVec: API Changes (Transition Guide): 1.0.0-alpha to 1.0.0-beta

Arbiter

Arbiter: New Features

Arbiter: Fixes

RL4J

ScalNet

ND4S

Release Notes for Version 1.0.0-alpha

Highlights - 1.0.0-alpha Release

Deeplearning4J

Deeplearning4J: New Features

Deeplearning4J: Bug Fixes and Optimizations

Deeplearning4J: API Changes (Transition Guide): 0.9.1 to 1.0.0-alpha

Deeplearning4J: 1.0.0-alpha Known Issues

Deeplearing4J: Keras Import

Deeplearning4J: Keras Import - API Changes (Transition Guide): 0.9.1 to 1.0.0-alpha

Deeplearning4J: Keras Import - Known Issues

ND4J

ND4J: New Features

ND4J: Known Issues

ND4J: API Changes (Transition Guide): 0.9.1 to 1.0.0-alpha

ND4J - SameDiff

Alpha release of SameDiff auto-differentiation engine for ND4J.

Features

Known Issues and Limitations

DataVec

DataVec: New Features

DataVec: Fixes

DataVec: API Changes (Transition Guide): 0.9.1 to 1.0.0-alpha

Arbiter

Arbiter: New Features

Arbiter: Fixes

Arbiter: API Changes (Transition Guide): 0.9.1 to 1.0.0-alpha

RL4J

ScalNet

ND4S

Release Notes for Version 0.9.1

Deeplearning4J

ND4J

Known Issues

Release Notes for Version 0.9.0

Deeplearning4J

ND4J

DataVec

Arbiter

0.8.0 -> 0.9.0 Transition Notes

Deeplearning4j

DataVec

Arbiter

Release Notes for Version 0.8.0

0.7.2 -> 0.8.0 Transition Notes

0.8.0 Known Issues (At Launch)

Release Notes for Version 0.7.2

0.7.1 -> 0.7.2 Transition Notes

Release Notes for Version 0.7.1

Release Notes for Version 0.7.0

0.6.0 -> 0.7.0 Transition Notes

Notable changes for upgrading codebases based on 0.6.0 to 0.7.0:

Release Notes for Version 0.6.0

Release Notes for Version 0.5.0

Release Notes for version 0.4.0

Resources

Roadmap for Fall 2016

Subscribe to the DL4J Newsletter