1.0.0-beta

Highlights - 1.0.0-beta Release

  • Performance and memory optimizations for DL4J

Deeplearning4J

Deeplearning4J: New Features

  • New or enhanced layers:

  • Added ComputationGraph.output(DataSetIterator) method Linkarrow-up-right

  • Added MultiLayerNetwork/ComputationGraph.layerInputSize methods Linkarrow-up-right Linkarrow-up-right

  • Added SparkComputationGraph.feedForwardWithKey overload with feature mask support Linkarrow-up-right

  • Added MultiLayerNetwork.calculateGradients method (for easily getting parameter and input gradients, for example for some model interpretabilithy approaches) Linkarrow-up-right Linkarrow-up-right

  • Added support to get input/activation types for each layer from configuration: ComputationGraphConfiguration.getLayerActivationTypes(InputType...), ComputationGraphConfiguration.GraphBuilder.getLayerActivationTypes(), NeuralNetConfiguration.ListBuilder.getLayerActivationTypes(), MultiLayerConfiguration.getLayerActivationTypes(InputType) methods Linkarrow-up-right

  • Evaluation.stats() now prints confusion matrix in easier to read matrix format, rather than list format Linkarrow-up-right

  • Added ModelSerializer.addObjectToFile, .getObjectFromFile and .listObjectsInFile for storing arbitrary Java objects in same file as saved network Linkarrow-up-right

  • Added SpatialDropout support (with Keras import support) Linkarrow-up-right

  • Added MultiLayerNetwork/ComputationGraph.fit((Multi)DataSetIterator, int numEpochs) overloads Linkarrow-up-right

  • Added performance (hardware) listeners: SystemInfoPrintListener and SystemInfoFilePrintListener Linkarrow-up-right

Deeplearning4J: Bug Fixes and Optimizations

  • Performance and memory optimizations via optimizations of internal use of workspaces Linkarrow-up-right

  • Reflections library has entirely been removed from DL4J and is no longer required for custom layer serialization/deserialization Linkarrow-up-right, Linkarrow-up-right

    • Fixes issues with custom and some Keras import layers on Android

  • RecordReaderMultiDataSetIterator will no longer try to convert unused columns to numerical values Linkarrow-up-right

  • Added new model zoo models:

    • (to do)

  • Fixes for Android compilation (removed duplicate classes, aligned versions, removed some dependencies) Linkarrow-up-right Linkarrow-up-right Linkarrow-up-right

  • Fix for RecordReaderMulitDataSetIterator where output could be incorrect for some constructors Linkarrow-up-right

  • Non-frozen layers before a frozen layer will no longer be skipped during backprop (useful for GANs and similar architectures) Linkarrow-up-right Linkarrow-up-right

  • Fixed issue where ComputationGraph topological sort may not be consistent on all platforms; could sometimes break ComputationGraphs (with multiple valid topological orderings) trained on PC and deployed on Android Linkarrow-up-right

  • Fixed issue with CuDNN batch norm using 1-decay instead of decay Linkarrow-up-right

  • deeplearning4j-cuda no longer throws exceptions if present on classpath with nd4j-native backend set to higher priority Linkarrow-up-right

  • Added RNG control for CifarDataSetIterator Linkarrow-up-right

  • WordVectorSerializer now deletes temp files immediately once done Linkarrow-up-right

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

  • WorkspaceMode.SINGLE and SEPARATE have been deprecated; use WorkspaceMode.ENABLED instead

  • Internal layer API changes: custom layers will need to be updated to the new Layer API - see built-in layers or custom layer example

  • Custom layers etc in pre-1.0.0-beta JSON (ModelSerializer) format need to be registered before they can be deserialized due to JSON format change. Built-in layers and models saved in 1.0.0-beta or later do not require this. Use NeuralNetConfiguration.registerLegacyCustomClassesForJSON(Class) for this purpose

  • IterationListener has been deprecated in favor of TrainingListener. For existing custom listeners, switch from implements TrainingListener to extends BaseTrainingListener Linkarrow-up-right

  • ExistingDataSetIterator has been deprecated; use fit(DataSetIterator, int numEpochs) method instead

Deelpearning4J: 1.0.0-beta Known Issues

  • ComputationGraph TrainingListener onEpochStart and onEpochEnd methods are not being called correctly

  • DL4J Zoo Model FaceNetNN4Small2 model configuration is incorrect, causing issues during forward pass

  • Early stopping score calculators with values thar should be maximized (accuracy, f1 etc) are not working properly (values are minimized not maximized). Workaround: override ScoreCalculator.calculateScore(...) and return 1.0 - super.calculateScore(...).

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

  • Not all op gradients implemented for automatic differentiation

  • Vast majority of new operations added in 1.0.0-beta do NOT use GPU yet.

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

DataVec

DataVec: New Features

  • ImageRecordReader now logs number of inferred label classes (to reduce risk of users missing a problem if something is misconfigured) Linkarrow-up-right

  • Added AnalyzeSpark.getUnique overload for multiple columns Linkarrow-up-right

  • Added performance/timing module Linkarrow-up-right

DataVec: Optimizations and Bug Fixes

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

  • DataVec ClassPathResource has been deprecated; use nd4j-common version instead Linkarrow-up-right

Arbiter

Arbiter: New Features

  • Added LayerSpace for OCNN (one-class neural network)

Arbiter: Fixes

  • Fixed timestamp issue that could cause incorrect rendering of first model's results in UI Linkarrow-up-right

  • Execution now waits for last model(s) to complete before returning when a termination condition is hit Linkarrow-up-right

  • As per DL4J etc: use of Reflections library has been removed entirely from Arbiter Linkarrow-up-right

  • Remove use of Eclipse Collections library due to issues with Android compilation Linkarrow-up-right

  • Improved cleanup of completed models to reduce maximum memory requirements for training Linkarrow-up-right

Last updated

Was this helpful?