|Original author(s)||Adam Gibson|
|Stable release||0.0.3.2.5 / 15 September 2014|
|Written in||Java, Scala, CUDA, C|
|Operating system||Linux, OSX, Windows, Android, CyanogenMod|
|Type||Natural language processing, Deep learning, Machine vision, Artificial intelligence|
|Machine learning and
Deeplearning4j is an open source deep learning library written for Java and the Java Virtual Machine and a computing framework with wide support for deep learning algorithms. Deeplearning4j includes implementations of the restricted Boltzmann machine, deep belief net, deep autoencoder, stacked denoising autoencoder and recursive neural tensor network, as well as word2vec, doc2vec and GloVe. These algorithms all include distributed parallel versions that integrate with Hadoop and Spark.
Deeplearning4j relies on the widely used programming language, Java - though it is compatible with Clojure and includes a Scala API. It is powered by its own open-source numerical computing library, ND4J, and works with both CPUs and GPUs. 
Deeplearning4j is an open source project primarily developed by a machine learning group in San Francisco led by Adam Gibson. Deeplearning4j is the only open-source project listed on Google's Word2vec page for its Java implementation.
The framework is composable, meaning shallow neural nets such as restricted Boltzmann machines, convolutional nets, autoencoders and recurrent nets can be added to one another to create deep nets of varying types.
Training with Deeplearning4j takes place in the cluster, which means it can process massive amounts of data. Neural nets are trained in parallel via iterative reduce, which works on Hadoop/YARN and on Spark. Deeplearning4j also integrates with Cuda kernels to conduct pure GPU operations, and works with distributed GPUs.
Scientific Computing for the JVM
Deeplearning4j includes an n-dimensional array class using ND4J that allows for scientific computing in Java and Scala, similar to the functionality that Numpy provides to Python. It's effectively based on a library for linear algebra and matrix manipulation in a production environment. It relies on Matplotlib as a plotting package.
Canova Vectorization Lib for Machine-Learning
Canova vectorizes various file formats and data types using an input/output format system similar to Hadoop's use of MapReduce. A work in progress, Canova is designed to vectorize CSVs, images, sound, text and video. Since vectorization is a necessary step in preparing data to be ingested by neural nets, Canova solves one of the most important problems in machine learning. Canova can be used from the command line.
Deeplearning4j includes a vector space modeling and topic modeling toolkit, implemented in Java and integrating with GPUs for performance. It is specifically intended for handling large text collections, using efficient online algorithms.
- Metz, Cade (2014-06-02). "The Mission to Bring Google's AI to the Rest of the World". Wired.com. Retrieved 2014-06-28.
- Vance, Ashlee (2014-06-03). "Deep Learning for (Some of) the People". Bloomberg Businessweek. Retrieved 2014-06-28.
- TV, Functional (2015-02-12). "Adam Gibson, DeepLearning4j on Spark and Data Science on JVM with nd4j, SF Spark @Galvanize 20150212". SF Spark Meetup. Retrieved 2015-03-01.
- Harris, Derrick (2014-06-02). "A startup called Skymind launches, pushing open source deep learning". GigaOM.com. Retrieved 2014-06-29.
- Novat, Jordan (2014-06-02). "Skymind launches with open-source, plug-and-play deep learning features for your app". Retrieved 2014-06-29.
- "Github Repository".
- "Crunchbase Profile".
- "Google Code".
- Deeplearning4j source code
- Deeplearning4j Google Group
- "Iterative reduce".
- Official website
- "Deeplearning4j vs. Torch vs. Caffe vs. Pylearn".
- "Canova: A General Vectorization Lib for Machine Learning".
- "Apache Flink".