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
Weka workbench GUI

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


  • Steven Lang
  • Felipe Bravo-Marquez
  • Chris Beckham
  • Mark Hall
  • Eibe Frank


S. Lang, F. Bravo-Marquez, C. Beckham, M. Hall, and E. Frank WekaDeeplearning4j: a Deep Learning Package for Weka based on DeepLearning4j, In Knowledge-Based Systems, 2019. DOI: 10.1016/j.knosys.2019.04.013 (author version)