Skip to content

Latest commit

 

History

History
163 lines (122 loc) · 6.51 KB

File metadata and controls

163 lines (122 loc) · 6.51 KB

Eclipse Deeplearning4j: ND4J NDArray Examples

This project contains a set of examples that demonstrate how to manipulate NDArrays. The functionality of ND4J demonstrated here can be likened to NumPy.

The examples in this project along with a short summary are listed below. This is also the recommended order to explore them in.

Go back to the main repository page to explore other features/functionality of the Eclipse Deeplearning4J ecosystem. File an issue here to request new features.

Quickstart

Advanced

  • MultiClassLogitExample.java Multiclass logistic regression from scratch with ND4J
  • WorkspacesExample.java For cyclic workloads like training a neural net the DL4J ecosystem does not rely on garbage collection. Instead a chunk of memory is resued avoiding the performance hits from expensive pauses for GC. Workspaces are used by default when calling .fit on a neural network etc. This example demonstrates the concepts behind it for advanced users if they need to go beyond what is available by default in the library in their particular use case.
  • Nd4jEx11_Axpy.java Use the ND4J blas wrapper to call the AXPY operation
  • Nd4jEx12_LargeMatrices.java Operations with a 10000000 element NDarray and its transpose
  • Nd4jEx13_Serialization.java Examples for binary and text serialization.
  • Nd4jEx14_Normalizers.java Create and fit a normalizer, and save and restore it.
  • CustomOpsExamples.java Only relevant to the 1.0.0-beta6 release. There are some operations that were implemented in C++ that had not been mapped to Java. This example demonstrates how to access them using ND4J's DynamicCustomOp. As of the beta7 release all maps have corresponding Java mappings.

ND4J NDArray Examples

This module contains simple examples that demonstrate how to use ND4J
(N-dimensional arrays for Java) — the core numerical computing library behind Deeplearning4j.

ND4J provides fast tensor operations similar to NumPy, backed by optimized BLAS
implementations.

These examples help new users understand:

  • What an INDArray is
  • How to create arrays
  • How to perform basic math
  • How to reshape, slice, and combine arrays
  • How to run the examples using Maven

📌 What is an NDArray?

An NDArray (N-dimensional array) is ND4J’s fundamental data structure.
It represents:

  • Scalars (0D)
  • Vectors (1D)
  • Matrices (2D)
  • Higher dimensional tensors (3D, 4D, …)

ND4J operations are vectorized and run efficiently on CPU or GPU (via CUDA backend).

Example:

INDArray arr = Nd4j.create(new float[]{1, 2, 3});
System.out.println(arr);   // [1.00, 2.00, 3.00]
📘 Basic NDArray Operations
Create Arrays
java

INDArray zeros = Nd4j.zeros(3, 3);
INDArray ones = Nd4j.ones(2, 2);
INDArray random = Nd4j.rand(1, 5);
INDArray arange = Nd4j.arange(1, 10);
Math Operations
java

INDArray a = Nd4j.create(new float[]{1, 2, 3});
INDArray b = Nd4j.create(new float[]{4, 5, 6});

System.out.println(a.add(b));       // elementwise add  
System.out.println(a.mul(b));       // elementwise multiply
System.out.println(a.mmul(b.T()));  // matrix multiplication
Reshape and Shape Ops

INDArray m = Nd4j.linspace(1, 9, 9).reshape(3, 3);
System.out.println(m);

System.out.println(m.transpose());
System.out.println(m.permute(1, 0));
▶️ How to Run These Examples
Make sure you have:

Java 8 or later

Maven installed

Then run:


mvn -q exec:java -Dexec.mainClass="org.nd4j.examples.quickstart.BasicNDArrayExample"
Or run any other example under:



src/main/java/org/nd4j/examples/
Example:


mvn -q exec:java -Dexec.mainClass="org.nd4j.examples.advanced.SlicingExample"
📤 Expected Output (Sample)
Running a basic NDArray creation example:


Copy code
Zeros array:
[[0.00, 0.00, 0.00],
 [0.00, 0.00, 0.00],
 [0.00, 0.00, 0.00]]

Random array:
[0.42, 0.91, 0.12, 0.55, 0.33]

Vector add:
[5.00, 7.00, 9.00]
📁 Project Structure

nd4j-ndarray-examples/
 ├── src/
 │   └── main/java/org/nd4j/examples/
 │        ├── advanced/
 │        ├── quickstart/
 │        ├── utils/
 │        └── resources/
 ├── pom.xml
 └── README.md
📄 License
This project is part of the Eclipse Deeplearning4j examples collection
and is licensed under the Apache License 2.0.

Happy coding with ND4J tensors! 🚀