Deeplearning4j
Original author(s) | Adam Gibson |
---|---|
Developer(s) | various |
Stable release | 0.0.4
/ 24 August 2015 |
Repository | |
Written in | Java, Scala, CUDA, C, C++ |
Operating system | Linux, OS X, Windows, Android |
Platform | Cross-platform |
Available in | English |
Type | Natural language processing, deep learning, machine vision, artificial intelligence |
License | Apache 2.0 |
Website | deeplearning4j |
Part of a series on |
Machine learning and data mining |
---|
Deeplearning4j is a deep learning programming library written for Java and the Java virtual machine (JVM)[1][2] and a computing framework with wide support for deep learning algorithms.[3] Deeplearning4j includes implementations of the restricted Boltzmann machine, deep belief net, deep autoencoder, stacked denoising autoencoder and recursive neural tensor network, word2vec, doc2vec, and GloVe. These algorithms all include distributed parallel versions that integrate with Apache Hadoop and Spark.[4]
Deeplearning4j is open-source software released under Apache License 2.0,[5] developed mainly by a machine learning group in San Francisco led by Adam Gibson.[6][7] It is supported commercially by the startup Skymind.
Introduction
Deeplearning4j relies on the widely used programming language, Java, though it is compatible with Clojure and includes a Scala application programming interface (API). It is powered by its own open-source numerical computing library, ND4J, and works with both central processing units (CPUs) and graphics processing units (GPUs).[8][9]
Deeplearning4j has been used in several commercial and academic applications. The code is hosted on GitHub.[10] A support forum is maintained on Gitter.[11]
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. It also has extensive visualization tools,[12] and a computation graph.[13]
Distributed
Training with Deeplearning4j occurs in a cluster. Neural nets are trained in parallel via iterative reduce, which works on Hadoop-YARN and on Spark.[6][14] 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 scientific computing in Java and Scala, similar to the functions that NumPy provides to Python. It's effectively based on a library for linear algebra and matrix manipulation in a production environment.
DataVec vectorization library for machine-learning
DataVec vectorizes various file formats and data types using an input/output format system similar to Hadoop's use of MapReduce; that is, it turns various data types into columns of scalars termed vectors. DataVec is designed to vectorize CSVs, images, sound, text, video, and time series.
Text and NLP
Deeplearning4j includes a vector space modeling and topic modeling toolkit, implemented in Java and integrating with parallel GPUs for performance. It is designed to handle large text sets.
Deeplearning4j includes implementations of term frequency–inverse document frequency (tf–idf), deep learning, and Mikolov's word2vec algorithm,[15] doc2vec, and GloVe, reimplemented and optimized in Java. It relies on t-distributed stochastic neighbor embedding (t-SNE) for word-cloud visualizations.
Real-world use cases and integrations
Real-world use cases for Deeplearning4j include fraud detection for the financial sector,[16] anomaly detection in industries such as manufacturing, recommender systems in e-commerce and advertising,[17] and image recognition. Deeplearning4j has integrated with other machine-learning platforms such as RapidMiner and Prediction.io.[18]
Related libraries
- OpenNN, an open source neural networks library written in C++ for deep learning.
- Torch, an open source framework written in Lua with wide support for machine learning algorithms.
- Theano, an open source deep learning library for Python.
- Neuroph
See also
References
- ^ 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.
- ^ Novet, Jordan (2015-11-14). "Want an open-source deep learning framework? Take your pick". VentureBeat. Retrieved 2015-11-24.
- ^ 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.
- ^ "Github Repository".
- ^ a b "deeplearning4j.org".
- ^ "Crunchbase Profile".
- ^ Harris, Derrick (2014-06-02). "A startup called Skymind launches, pushing open source deep learning". GigaOM.com. Retrieved 2014-06-29.
- ^ Novet, Jordan (2014-06-02). "Skymind launches with open-source, plug-and-play deep learning features for your app". Retrieved 2014-06-29.
- ^ Deeplearning4j source code
- ^ Deeplearning4j Gitter Support Channel
- ^ Deeplearning4j Visualization Tools
- ^ Deeplearning4j Deeplearning4j Computation Graph
- ^ "Iterative reduce".
- ^ word2vec
- ^ http://www.skymind.io/finance/
- ^ http://www.skymind.io/commerce/
- ^ https://www.rapidminerchina.com/en/products/shop/product/deeplearning4j/
External links
- Official website
- "QuickStart for Deeplearning4j".
- "Deeplearning4j Github Repositories".
- "Deeplearning4j vs. Torch vs. Caffe vs. Theano".
- "DataVec: A General Vectorization Lib for Machine Learning".
- "ND4J: N-Dimensional Arrays for Java and Scala, A Linear Algebra Library".
- "Java Magazine by Oracle: Deep Learning in Java".
- "Deeplearning4j Community of Gitter Chat".
- Array programming languages
- Numerical programming languages
- Data mining and machine learning software
- Deep learning
- Free statistical software
- Java platform
- Java programming language family
- JVM programming languages
- Scala (programming language)
- Natural language processing
- Artificial neural networks
- Free science software
- Free software programmed in Java (programming language)
- Java (programming language) libraries
- Hadoop
- Software using the Apache license
- Cluster computing
- Free software programmed in Scala
- Applied machine learning
- Technology companies based in the San Francisco Bay Area
- Information technology companies of the United States
- Image processing
- Machine learning