2

我正在使用 Hadoop/Mahout 分解将成为一个非常大的稀疏矩阵。问题是,我什至无法用 200 个非零值和尺寸 56000 x 56000 在一秒钟内用 Python 解决它。我有一个令人毛骨悚然的怀疑,即计算在某些时候变得密集!

我目前正在使用单节点/核心。这相关吗?所有操作都从 Java 文件运行,而不是从命令行运行。我得到的例外是老歌但好人:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at org.apache.mahout.math.DenseMatrix.<init>(DenseMatrix.java:50)
at org.apache.mahout.math.solver.EigenDecomposition.<init>(EigenDecomposition.java:70)
at myhadoop.MyHadoop.main(MyHadoop.java:84)

Java 结果:1

自然,由于 Exceptions 引用了 DenseMatrix,我很担心。如果它以某种方式使用覆盖的方法,我可以不在乎,但如果正在写入实际的零,那就不好了。另外,我的程序运行得很慢。

编码:

SparseRowMatrix A = new SparseRowMatrix();    
// Matrix A is then created by adding elements one by one in a 
// somewhat ordered fashion.    
B SparseRowMatrix = A;    
B.transpose();    
A.plus(B);    
EigenDecomposition eigDec = new EigenDecomposition(A, true);    
myEig = eigDec.getRealEigenvalues();

如果实际上不是,有关如何使其真正稀疏的任何想法?

4

0 回答 0