ND4J is an Apache2 Licensed open-sourced scientific computing library for the JVM. It is meant to be used in production environments rather than as a research tool, which means routines are designed to run fast with minimum RAM requirements.
- Versatile n-dimensional array object
- Multiplatform functionality including GPUs
- Linear algebra and signal processing functions
Specifics
- Supports GPUs via CUDA and Native via Jblas and Netlib Blas.
- All of this is wrapped in a unifying interface.
- The API mimics the semantics of Numpy, Matlab and scikit-learn.
Several of these modules are different backend options for ND4J (including GPUs with JCublas).
- api = core
- instrumentation
- java = java backend
- jblas = jblas backend
- jcublas-parent = jcublas backend (GPUs)
- jdbc = Java Database Connectivity
- jocl-parent = Java bindings for OpenCL
- netlib-blas = netlib blas backend
- scala-api = API for Scala users
- scala-notebook = Integration with Scala Notebook
Documentation is available at nd4j.org. Access the JavaDocs for more detail.
To install ND4J, there are a couple of approaches, and more information can be found on the ND4J website.
- Search for nd4j in the Maven Central Repository to find the available nd4j jars.
- Include the appropriate dependency in your pom.xml.
ND4J is actively developed. You can clone the repository, compile it, and reference it in your project.
Clone the repository:
$ git clone https://github.com/deeplearning4j/nd4j.git
Compile the project:
$ cd nd4j
$ mvn clean install -DskipTests -Dmaven.javadoc.skip=true
Add the local compiled file dependency (choose the module for your backend) to your pom.xml file:
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-jblas</artifactId>
<version>0.0.3.5.5.4-SNAPSHOT</version>
</dependency>
Download the rpm file. Then run the following command.
$ sudo rpm -iv [package.rpm]
- Check for open issues, or open a new issue to start a discussion around a feature idea or a bug.
- If you feel uncomfortable or uncertain about an issue or your changes, feel free to contact us on Gitter using the link above.
- Fork the repository on GitHub to start making your changes to the master branch (or branch off of it).
- Write a test, which shows that the bug was fixed or that the feature works as expected.
- Send a pull request, and bug us on Gitter until it gets merged and published.