Deeplearning4j is the first commercial-grade, open-source, distributed deep-learning library written for Java and Scala. Integrated with Hadoop and Spark, DL4J is designed to be used in business environments, rather than as a research tool. It aims to be cutting-edge plug and play, more convention than configuration, which allows for fast prototyping for non-researchers. DL4J is customizable at scale, and under its Apache 2.0 release, all derivative works belong to their inventors.
Deeplearning4j includes a distributed multi-threaded deep-learning framework and a normal single-threaded deep-learning framework. Training takes place in the cluster, which means it can process massive amounts of data. Nets are trained in parallel via iterative reduce, and they are equally compatible with Java, Scala and Clojure.
Deep neural nets are capable of record-breaking accuracy. For a quick introduction to them, please visit our overview page. In a nutshell, Deeplearning4j lets you compose deep neural nets from various shallow nets, each of which form a layer. This flexibility lets you combine restricted Boltzmann machines, autoencoders, convolutional nets and recurrent nets as needed in a distributed, production-grade framework that works with Spark and Hadoop on top of distributed CPUs or GPUs.
Here’s an overview of the different libraries we’ve built and where they fit into a larger ecosystem:
There are a lot of parameters to adjust when you’re training a deep-learning network. We’ve done our best to explain them, so that Deeplearning4j can serve as a DIY tool for Java, Scala and Clojure programmers.
For any question, please join our Google Group; for premium support, contact us at Skymind. ND4J is the Java-based scientific computing engine powering our matrix manipulations.