私は、74000 X 640次元の行列のSVD(単一値分解)を取得する必要があるプロジェクトで作業しています。Jama、効率的なJava Matrixライブラリ(EJML)、およびOjAlgoの3つのライブラリを試しました。SVDでのJava Matrixベンチマークメモリの結果に基づいて、これら3つを選択します。最初はJamaを使用しましたが、行数は列数以上でなければならず、別のステップで任意の行列次元のSVDを取得する必要があることを発見しました。そこで、EJMLとOjAlgoに移動しましたが、EJMLにいくつか質問/問題があります。
EJML-> SVDに対して正しい結果が得られますが、マトリックスサイズを74000 X 640次元に拡大すると、ヒープメモリの例外が発生するため、ライブラリのマトリックスサイズに制限がありますか?
マトリックスの作成に使用したコードは次のとおりです。
SimpleMatrix A = new SimpleMatrix(74000, 640);
私の問題を理解して修正するのを手伝ってください。
ありがとうございました