ND4J (software)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
ND4J: N-Dimensional Arrays for Java
Original author(s)Adam Gibson
Initial release15 September 2014; 4 years ago (2014-09-15)
Stable release
0.9.1 / 3 August 2017; 16 months ago (2017-08-03)
Written inJava (programming language), C++
Operating systemLinux, macOS, Windows, Android
Available inEnglish
TypeNatural language processing, deep learning, machine vision
LicenseApache 2.0

ND4J is a scientific computing library, written in the programming language C++, operating on the Java virtual machine (JVM), and compatible with the languages Java, Scala, and Clojure.[2][3] ND4J was contributed to the Eclipse Foundation in October 2017.[4]

ND4J is for performing linear algebra and matrix manipulation in a production environment, integrating with Apache Hadoop and Spark to work with distributed central processing units (CPUs) or graphics processing units (GPUs). It supports n-dimensional arrays for JVM-based languages.

ND4J is free and open-source software, released under Apache License 2.0, and developed mostly by the group in San Francisco that built Deeplearning4j, led by Adam Gibson.[5] It was created under an Apache Software Foundation license.


ND4J's operations include distributed parallel versions. Operation can occur in a cluster and process massive amounts of data. Matrix manipulation occurs in parallel on CPUs or GPUs over cloud computing, and can work in Spark or Hadoop clusters.

Other JVM Scientific Computing Libraries[edit]

A usability gap has separated Java, Scala, Kotlin and Clojure programmers from powerful tools in data analysis such as NumPy or Matlab. Libraries like Breeze don’t support n-dimensional arrays, or tensors, which are necessary for deep learning and other tasks. Libraries like Colt and Parallel Colt use or have dependencies with GPL in the license, making them unsuitable for commercial use. ND4J was built to address those functional and licenses issues.

See also[edit]


  1. ^ ND4J developers
  2. ^ "Official website".
  3. ^ "The Deeplearning4j Framework" (PDF). Archived from the original (PDF) on 2016-03-05. Retrieved 2016-02-29.
  4. ^ "Eclipse Deeplearning4j Project Page".
  5. ^ "Github Repository".

External links[edit]