Fork me on GitHub

ND4J:为Java编写的N维数组

ND4J和ND4S是JVM的科学计算库,并为生产环境设计,亦即例程运行速度快,RAM要求低。

主要特点

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

ND4J在开源、分布式、支持GPU的库内,为JVM带来了符合直觉的、Python编程人员所用的科学计算工具。在结构上,ND4J与SLF4J相似。ND4J让生产环境下的工程师能够轻松将算法和界面移植到Java和Scala体系内的其他库内。

点此立刻开始体验,或继续阅读下文。

ND4J/ND4S具体细节

代码示例

创建2x2多维数组:

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

输出:

[[1.0 ,3.0]
[2.0 ,4.0]
]

通过就地运算新增标量:

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

各元素均加1:

[[2.0 ,4.0]
[3.0 ,5.0]
]

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

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

输出:

[[7.0 ,11.0]
[9.0 ,13.0]
]

您已对ND4J有所了解。现在请亲自体验