ND4J和ND4S是JVM的科学计算库,并为生产环境设计,亦即例程运行速度快,RAM要求低。
主要特点:
由于易用性上存在的缺口,Java、Scala和Clojure编程人员无法充分利用NumPy或Matlab等数据分析方面最强大的工具。Breeze等其他库则不支持多维数组或张量,而这却是深度学习和其他任务的关键。ND4J和ND4S正得到国家级实验室的使用,以完成气候建模等任务。这类任务要求完成计算密集的模拟运算。
ND4J在开源、分布式、支持GPU的库内,为JVM带来了符合直觉的、Python编程人员所用的科学计算工具。在结构上,ND4J与SLF4J相似。ND4J让生产环境下的工程师能够轻松将算法和界面移植到Java和Scala体系内的其他库内。
Nd4j.zeros(nRows, nCols)
Nd4j.zeros(int...)
Nd4j.ones(nRows, nCols)
arr.dup()
myRow = Nd4j.create(myDoubleArr)
, myCol = Nd4j.create(myDoubleArr,new int[]{10,1})
Nd4j.create(double[][])
Nd4j.hstack(INDArray...)
Nd4j.vstack(INDArray...)
Nd4j.rand(int,int)
Nd4j.rand(int[])
Nd4j.randn(int,int)
Nd4j.randn(int[])
rank()
rows()
columns()
size(i)
shape()
arr.length()
isMatrix()
isVector()
isRowVector()
isRowVector()
arr.getDouble(i,j)
arr.getDouble(int[])
arr.putScalar(int[],double)
arr1.add(myDouble)
arr1.sub(myDouble)
arr.mul(myDouble)
arr.div(myDouble)
arr1.rsub(myDouble)
arr1.rdiv(myDouble)
arr1.add(arr2)
arr1.sub(arr2)
arr1.mul(arr2)
arr1.div(arr2)
arr1.assign(arr2)
arr.sumNumber()
arr.prod()
arr.norm1()
arr.norm2()
arr.stdNumber()
arr1.mmul(arr2)
transpose()
Nd4j.diag(INDArray)
InvertMatrix.invert(INDArray,boolean)
getRow(int)
getRows(int...)
putRow(int,INDArray)
Nd4j.create(0).get(NDArrayIndex.interval(0,3),NDArrayIndex.all());
Transforms.sin(INDArray)
Transforms.log(INDArray)
Transforms.sigmoid(INDArray)
Nd4j.getExecutioner().execAndReturn(new Tanh(INDArray))
Nd4j.getExecutioner().execAndReturn(Nd4j.getOpFactory().createTransform("tanh",INDArray))
参考资料:
更多文档可以查看 https://github.com/sjsdfg/deeplearning4j-issues。
你的star是我持续分享的动力