What is Deeplearning4j?

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 on distributed GPUs and CPUs. Skymind is its commercial support arm.

Welcome to Deeplearning4j

Deeplearning4j 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. Released under the Apache 2.0 license, all derivatives of DL4J belong to their authors. DL4J can import neural net models from most major frameworks via Keras, including TensorFlow, Caffe, Torch and Theano, bridging the gap between the Python ecosystem and the JVM with a cross-team toolkit for data scientists, data engineers and DevOps. Keras is employed as Deeplearning4j's Python API.


DL4J takes advantage of the latest distributed computing frameworks including Hadoop and Apache Spark to accelerate training. On multi-GPUs, it is equal to Caffe in performance.


The libraries are completely open-source, Apache 2.0, and maintained by the developer community and Skymind team.


Deeplearning4j is written in Java and is compatible with any JVM language, such as Scala or Clojure. The underlying computations are written in C, C++ and Cuda. Keras is its Python API.

What's included

Deep neural nets are capable of record-breaking accuracy. For a quick neural net introduction, please visit our overview page. In a nutshell, Deeplearning4j lets you compose deep neural nets from various shallow nets, each of which form a so-called `layer`. This flexibility lets you combine restricted Boltzmann machines, other autoencoders, convolutional nets or recurrent nets as needed in a distributed, production-grade framework that works with Spark and Hadoop on top of distributed CPUs or GPUs.

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.


  • Distributed CPUs and GPUs
  • Java, Scala and Clojure
  • Adapted for micro-service architecture
  • Parallel training via iterative reduce
  • Scalable on Hadoop
  • GPU support for scaling on AWS


  • Deeplearning4J: Neural Net Platform
  • ND4J: Numpy for the JVM
  • DataVec: Tool for Machine Learning ETL Operations
  • JavaCPP: The Bridge Between Java and Native C++
  • Arbiter: Evaluation Tool for Machine Learning Algorithms
  • RL4J: Deep Reinforcement Learning for the JVM

Learn More

If you have any questions, please join us on Gitter; for premium support, contact us at Skymind. ND4J is the Java-based scientific computing engine powering our matrix operations. On large matrices, our benchmarks show it runs roughly twice as fast as Numpy.

Continue reading

Chat with us on Gitter