Deeplearning4j
Community ForumND4J JavadocDL4J Javadoc
EN 1.0.0-M2
EN 1.0.0-M2
  • Deeplearning4j Suite Overview
  • Release Notes
    • 1.0.0-M2
    • 1.0.0-M1.1
    • 1.0.0-M1
    • 1.0.0-beta7
    • 1.0.0-beta6
    • 1.0.0-beta5
    • 1.0.0-beta4
    • 1.0.0-beta3
    • 1.0.0-beta2
    • 1.0.0-beta
    • 1.0.0-alpha
    • 0.9.1
    • 0.9.0
    • 0.8.0
    • 0.7.2
    • 0.7.1
    • 0.7.0
    • 0.6.0
    • 0.5.0
    • 0.4.0
    • 1.00-M2.2
  • Multi-Project
    • Tutorials
      • Beginners
      • Quickstart
    • How To Guides
      • Import in to your favorite IDE
      • Contribute
        • Eclipse Contributors
      • Developer Docs
        • Github Actions/Build Infra
        • Javacpp
        • Release
        • Testing
      • Build From Source
      • Benchmark
      • Beginners
    • Reference
      • Examples Tour
    • Explanation
      • The core workflow
      • Configuration
        • Backends
          • Performance Issues
          • CPU
          • Cudnn
        • Memory
          • Workspaces
      • Build Tools
      • Snapshots
      • Maven
  • Deeplearning4j
    • Tutorials
      • Quick Start
      • Language Processing
        • Doc2Vec
        • Sentence Iterator
        • Tokenization
        • Vocabulary Cache
    • How To Guides
      • Custom Layers
      • Keras Import
        • Functional Models
        • Sequential Models
        • Custom Layers
        • Keras Import API Overview
          • Advanced Activations
          • Convolutional Layers
          • Core Layers
          • Embedding Layers
          • Local Layers
          • Noise Layers
          • Normalization Layers
          • Pooling Layers
          • Recurrent Layers
          • Wrapper Layers
        • Supported Features Overview
          • Activations
          • Constraints
          • Initializers
          • Losses
          • Optimizers
          • Regularizers
      • Tuning and Training
        • Visualization
        • Troubleshooting Training
        • Early Stopping
        • Evaluation
        • Transfer Learning
    • Reference
      • Model Zoo
        • Zoo Models
      • Activations
      • Auto Encoders
      • Computation Graph
      • Convolutional Layers
      • DataSet Iterators
      • Layers
      • Model Listeners
      • Saving and Loading Models
      • Multi Layer Network
      • Recurrent Layers
      • Updaters/Optimizers
      • Vertices
      • Word2vec/Glove/Doc2Vec
    • Explanation
  • datavec
    • Tutorials
      • Overview
    • How To Guides
    • Reference
      • Analysis
      • Conditions
      • Executors
      • Filters
      • Normalization
      • Operations
      • Transforms
      • Readers
      • Records
      • Reductions
      • Schemas
      • Serialization
      • Visualization
    • Explanation
  • Nd4j
    • Tutorials
      • Quickstart
    • How To Guides
      • Other Framework Interop
        • Tensorflow
        • TVM
        • Onnx
      • Matrix Manipulation
      • Element wise Operations
      • Basics
    • Reference
      • Op Descriptor Format
      • Tensor
      • Syntax
    • Explanation
  • Samediff
    • Tutorials
      • Quickstart
    • How To Guides
      • Importing Tensorflow
      • Adding Operations
        • codegen
    • Reference
      • Operation Namespaces
        • Base Operations
        • Bitwise
        • CNN
        • Image
        • LinAlg
        • Loss
        • Math
        • NN
        • Random
        • RNN
      • Variables
    • Explanation
      • Model Import Framework
  • Libnd4j
    • How To Guides
      • Building on Windows
      • Building for raspberry pi or Jetson Nano
      • Building on ios
      • How to Add Operations
      • How to Setup CLion
    • Reference
      • Understanding graph execution
      • Overview of working with libnd4j
      • Helpers Overview (CUDNN, OneDNN,Armcompute)
    • Explanation
  • Python4j
    • Tutorials
      • Quickstart
    • How To Guides
      • Write Python Script
    • Reference
      • Python Types
      • Python Path
      • Garbage Collection
      • Python Script Execution
    • Explanation
  • Spark
    • Tutorials
      • DL4J on Spark Quickstart
    • How To Guides
      • How To
      • Data How To
    • Reference
      • Parameter Server
      • Technical Reference
    • Explanation
      • Spark API Reference
  • codegen
Powered by GitBook
On this page
  • 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

Was this helpful?

Export as PDF
  1. Release Notes

1.0.0-beta

Previous1.0.0-beta2Next1.0.0-alpha

Last updated 3 years ago

Was this helpful?

Highlights - 1.0.0-beta Release

  • Performance and memory optimizations for DL4J

Deeplearning4J

Deeplearning4J: New Features

  • New or enhanced layers:

    • Added Cropping1D layer

    • Added Convolution3D, Cropping3D, UpSampling3D, ZeroPadding3D, Subsampling3D layers (all with Keras import support):

    • Added EmbeddingSequenceLayer (EmbeddingLayer for time series)

    • Added OCNNOutputLayer (one-class neural network) - implementation of -

    • Added FrozenLayerWithBackprop layer

    • Added DepthwiseConvolution2D layer

  • Added ComputationGraph.output(DataSetIterator) method

  • Added MultiLayerNetwork/ComputationGraph.layerInputSize methods

  • Added SparkComputationGraph.feedForwardWithKey overload with feature mask support

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

  • 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

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

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

  • Added SpatialDropout support (with Keras import support)

  • Added MultiLayerNetwork/ComputationGraph.fit((Multi)DataSetIterator, int numEpochs) overloads

  • Added performance (hardware) listeners: SystemInfoPrintListener and SystemInfoFilePrintListener

Deeplearning4J: Bug Fixes and Optimizations

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

  • Added new model zoo models:

    • (to do)

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

  • 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

DataVec: Optimizations and Bug Fixes

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

Arbiter

Arbiter: New Features

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

Arbiter: Fixes

Performance and memory optimizations via optimizations of internal use of workspaces

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

RecordReaderMultiDataSetIterator will no longer try to convert unused columns to numerical values

Fixes for Android compilation (removed duplicate classes, aligned versions, removed some dependencies)

Fix for RecordReaderMulitDataSetIterator where output could be incorrect for some constructors

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

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

Fixed issue with CuDNN batch norm using 1-decay instead of decay

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

Added RNG control for CifarDataSetIterator

WordVectorSerializer now deletes temp files immediately once done

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

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

Added AnalyzeSpark.getUnique overload for multiple columns

Added performance/timing module

Reduced ImageRecordReader garbage generation via buffer reuse

Fixes for Android compilation (aligned versions, removed some dependencies)

Removed Reflections library use in DataVec

Fix for TransformProcessRecordReader batch support

Fix for TransformProcessRecordReader with filter operations

Fixed issue with ImageRecordReader/ParentPathLabelGenerator incorrectly filtering directories containing . character(s)

ShowImageTransform now initializes frame lazily to avoid blank windows

DataVec ClassPathResource has been deprecated; use nd4j-common version instead

Fixed timestamp issue that could cause incorrect rendering of first model's results in UI

Execution now waits for last model(s) to complete before returning when a termination condition is hit

As per DL4J etc: use of Reflections library has been removed entirely from Arbiter

Remove use of Eclipse Collections library due to issues with Android compilation

Improved cleanup of completed models to reduce maximum memory requirements for training

Link
Link
Link
Link
this paper
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link