[5] Deeplearning4j is open-source software released under Apache License 2.0,[6] developed mainly by a machine learning group headquartered in San Francisco.
[7][17] Deeplearning4j also integrates with CUDA kernels to conduct pure GPU operations, and works with distributed GPUs.
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.
DataVec is designed to vectorize CSVs, images, sound, text, video, and time series.
Deeplearning4j includes implementations of term frequency–inverse document frequency (tf–idf), deep learning, and Mikolov's word2vec algorithm,[20] doc2vec, and GloVe, reimplemented and optimized in Java.
[26] Deeplearning4j serves machine-learning models for inference in production using the free developer edition of SKIL, the Skymind Intelligence Layer.
[29] For programmers unfamiliar with HPC on the JVM, there are several parameters that must be adjusted to optimize neural network training time.
These include setting the heap space, the garbage collection algorithm, employing off-heap memory and pre-saving data (pickling) for faster ETL.
[33] The core languages performing the large-scale mathematical operations necessary for deep learning are C, C++ and CUDA C. Tensorflow, Keras and Deeplearning4j work together.