Deeplearning4j, or DL4J, is a deep learning library written in Java. It features a distributed as well as a single-machine deep learning framework that includes and supports various neural network structures such as feedforward neural networks, RBM, convolutional neural nets, deep belief networks, autoencoders, and others. DL4J can solve distinct problems, such as identifying faces, voices, spam, or e-commerce fraud.
Deeplearning4j is also distributed under the Apache 2.0 license and can be downloaded from http://deeplearning4j.org. The library is organized as follows:
org.deeplearning4j.base: These are loading classes
org.deeplearning4j.berkeley: These are math utility methods
org.deeplearning4j.clustering: This is the implementation of k-means clustering
org.deeplearning4j.datasets: This is dataset manipulation, including import, creation, iterating, and so on
org.deeplearning4j.distributions: These are utility methods for distributions
org.deeplearning4j.eval: These are evaluation classes, including the confusion matrix
org.deeplearning4j.exceptions: This implements the exception handlers
org.deeplearning4j.models: These are supervised learning algorithms, including deep belief networks, stacked autoencoders, stacked denoising autoencoders, and RBM
org.deeplearning4j.nn: These are the implementations of components and algorithms based on neural networks, such as neural networks, multi-layer networks, convolutional multi-layer networks, and so on
org.deeplearning4j.optimize: These are neural net optimization algorithms, including back propagation, multi-layer optimization, output layer optimization, and so on
org.deeplearning4j.plot: These are various methods for rendering data
org.deeplearning4j.rng: This is a random data generator
org.deeplearning4j.util: These are helper and utility methods