DN4j

DN4j is N-Dimensional Arrays for Java.

主要特点

  • 多用途多维数组对象

  • 多平台功能,包括GPU

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

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

Quick Start

mvn 引入

  • version
  [xml]
1
2
3
<properties> <nd4j.version>0.9.1</nd4j.version> </properties>
  • jar
  [xml]
1
2
3
4
5
<dependency> <groupId>org.nd4j</groupId> <artifactId>nd4j-native-platform</artifactId> <version>${nd4j.version}</version> </dependency>

代码

  • create

创建 2x2 多维数组:

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

结果:

  [plaintext]
1
2
[[1.00, 2.00], [3.00, 4.00]]
  • add

通过就地运算新增标量:

  [java]
1
2
arr1.addi(1); System.out.println(arr1);

结果:

  [plaintext]
1
2
[[2.00, 3.00], [4.00, 5.00]]
  • add array

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

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

结果:

  [plaintext]
1
2
[[7.00, 9.00], [11.00, 13.00]]