DN4j

DN4j is N-Dimensional Arrays for Java.

主要特点

  • 多用途多维数组对象

  • 多平台功能,包括GPU

  • 线性代数和信号处理功能

由于易用性上存在的缺口,Java、Scala 和 Clojure 编程人员无法充分利用NumPy或Matlab等数据分析方面最强大的工具。 Breeze 等其他库则不支持多维数组或张量,而这却是深度学习和其他任务的关键。 ND4J 和 ND4S 正得到国家级实验室的使用,以完成气候建模等任务。这类任务要求完成计算密集的模拟运算。

Quick Start

mvn 引入

  • version
<properties>
    <nd4j.version>0.9.1</nd4j.version>    
</properties>
  • jar
<dependency>
 <groupId>org.nd4j</groupId>
 <artifactId>nd4j-native-platform</artifactId>
 <version>${nd4j.version}</version>
</dependency>

代码

  • create

创建 2x2 多维数组:

INDArray arr1 = Nd4j.create(new float[]{1,2,3,4},new int[]{2,2});
System.out.println(arr1);

结果:

[[1.00, 2.00],
 [3.00, 4.00]]
  • add

通过就地运算新增标量:

arr1.addi(1);
System.out.println(arr1);

结果:

[[2.00, 3.00],
 [4.00, 5.00]]
  • add array

创建第二个数组(arr2)并将其加入第一个(arr1

INDArray arr2 = Nd4j.create(new float[]{5,6,7,8},new int[]{2,2});
arr1.addi(arr2);
System.out.println(arr1);

结果:

[[7.00, 9.00],
 [11.00, 13.00]]