- Prerequisites: Neural Networks, knowledge of Java.
DeepLearning4J (or DL4J for short) is a Java based, commercial-grade, open-source, distributed deep-learning library. It can be used to create and combine various types of neural networks, train them and deploy the resulting models.
A quick look at DL4J’s Github repository reveals that it is accompanied by ND4J, a scientific computing library with an API that mimics the semantics of the well-established Python libraries Numpy and scikit-learn. This library provides the underlying matrix-based operations needed for the various algorithms used in DL4J. The combination of ND4J and DL4J enables us to read and prepare data sets, then train a neural network with this data and evaluate the results.
Both DL4J and ND4J are distributed under an Apache 2.0 License, which means anyone is free to make and patent derivative works as long as they don’t sue someone else over patent claims regarding the original code.
An important aspect of DL4J is its ability to take advantage of the latest distributed computing frameworks, including Apache Spark and Hadoop to accelerate training. It can also run on multi-GPUs for performance acceleration.
One way of deploying DL4J trained machine-learning models for inference in production is using the free community edition of SKIL, the Skymind Intelligence Layer. This method employs a model server that receives JSON based requests carrying data, and returns a decision or prediction about that data; for example, an image is sent in the request, and the model server returns a label for that image, identifying faces or animals in the image.