Deeplearning4j includes both 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 quickly. Nets are trained in parallel via iterative reduce, and they are equally compatible with Java, Scala and Clojure. Deeplearning4j’s role as a modular component in an open stack makes it the first deep-learning framework adapted for a micro-service architecture.