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.

Functionality

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

Citation

Please cite the following paper if using this package in an academic publication:

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)

BibTex:

@article{lang2019wekadeeplearning4j,
  title={WekaDeeplearning4j: A deep learning package for Weka based on Deeplearning4j},
  author={Lang, Steven and Bravo-Marquez, Felipe and Beckham, Christopher and Hall, Mark and Frank, Eibe},
  journal={Knowledge-Based Systems},
  year={2019},
  publisher={Elsevier}
}

Contributing

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.