X と Y はどちらも 1 億行で、X は 10 列です。これらの行列を使用して線形回帰を実装しようとしていますが、数量が必要(X^T*X)^-1 * X^T * Y
です。これを可能な限りスペース効率よく計算するにはどうすればよいですか?
今、私は持っています
X = readMatrix("fileX.txt")
Y = readMatrix("fileY.txt")
return (X.getT() * X).getI() * X.getT() * Y
ここでメモリに格納されている行列の数は? 一度に 3 つ以上の行列が保存されていますか? それを行うより良い方法はありますか?
このプロジェクトには約 1.5 GB のメモリがあります。他のすべてのプログラムを閉じると、おそらく2または2.5に伸ばすことができます。理想的には、プロセスも短時間で実行されますが、メモリ バウンドはより厳密です。
私が試したもう 1 つの方法は、計算の中間ステップをテキスト ファイルとして保存し、各ステップの後に再読み込みすることです。しかし、それは非常に遅いです。