Deeplearning4J is an open-source, distributed deep learning library written for Java and Scala. It provides tools for training neural networks on distributed systems. While large companies can distribute training across many servers, Deeplearning4J allows other organizations to do distributed training as well. It includes libraries for vectorization, linear algebra, data preprocessing, model definition and training. The library aims to make deep learning more accessible to enterprises by allowing them to train models on their own large datasets.
5. DeepLearning in two steps : training,
applying
• training tends to require lots of data, (R)
• but applying does not (embedded, etc).
So that applying pre-trained models (Tensorframes) not the
technical/business challenge.
Enterprise : have lots of data yourself, what to apply ?
11. Distributing training
• basically distributing SGD (R)
• challenge is AllReduce Communication
• Sparse updates, async communications
12. Deeplearning4J
• the first commercial-grade, open-source, distributed deep-
learning library written for Java and Scala
• Skymind its commercial support arm
13. Scientific computing on the JVM
• libnd4j : Vectorization, 32-bit addressing, linalg (BLAS!)
• JavaCPP: generates JNI bindings to your CPP libs
• ND4J : numpy for the JVM, native superfast arrays
• Datavec : one-stop interface to an NDArray
• DeepLearning4J: orchestration, backprop, layer definition
• ScalNet: gateway drug, inspired from (and closely following)
Keras
15. Killing the bottlenecks : generic
• swappable net backend : netty -> aeron (Hi Lightbend !)
• better support for binary data : big indexed tables
Binary, columnar, off-heap
• and more (Tamiya Onodera's group @ IBM Japan):
http://www.slideshare.net/ishizaki/exploiting-gpus-in-spark
16. And if you don't care about Deep
Learning ?
• Spark-6442 : better linear algebra than breeze, please.
(sparse, performant, Java-compatible, and an OK license)
• SystemML got a best paper at VLDB'16, how about helping
out on nd4j ?
• ND4J only lacks sparse, but not for long ...