WekaDeeplearning4j: Deep Learning using Weka

Logo WekaDeeplearning4j is a deep learning package for the Weka workbench. It is developed to incorporate the modern techniques of deep learning into Weka. The backend is provided by the Deeplearning4j Java library.

The source code for this package is available on GitHub. The java-doc can be found here.


All functionality of this package is accessible via the Weka GUI, the commandline and programmatically in Java.

The following Neural Network Layers are available to build sophisticated architectures:

  • ConvolutionLayer: applying convolution, useful for images and text embeddings
  • DenseLayer: all units are connected to all units of its parent layer
  • SubsamplingLayer: subsample from groups of units of the parent layer by different strategies (average, maximum, etc.)
  • BatchNormalization: applies the common batch normalization strategy on the activations of the parent layer
  • LSTM: uses long short term memory approach
  • GlobalPoolingLayer: apply pooling over time for RNNs and pooling for CNNs applied on sequences
  • OutputLayer: generates classification / regression outputs

Further configurations can be found in the Getting Started and the Examples sections. Weka workbench GUI


Contributions are always welcome. If you want to contribute to the project, check out our contribution guide.

Future Work

Future work on WekaDeeplearning4j will include transfer learning, network weight and activation visualization, and support for multiple embeddings as input channels for textual data.