私は自分の論文のニューラル ネットワーク プロジェクトに MatrixToolkitsJava を使用しています。その中で、重み行列を大きくし、後で潜在的に小さくする必要があります。私が現在これを行っている方法、つまり新しいマトリックスを作成し、新しい値をインスタンス化しながら既存の値をコピーする方法は、非常に非効率的であり、ほとんどの時間を占めています。既存の行列に行と列を追加する効率的な方法はありますか?
1 に答える
0
前述のように、リストを使用できますが、配列の使用に固執している場合は、新しい配列を作成するメソッドを作成し、データをコピーしてから、格納している参照を置き換えることができます。
巨大な配列を使用していない場合は、使用System.arrayCopy(Object src, int srcPos, Object dest, int destPos, int length)
すると十分に高速になります。
編集:私はこれを以前に考えていなかったとは信じられません。行列乗算を使用してデータをコピーするだけです。たとえば、2 x 2 を 3 x 3 にするには、[2,2] x [(1,0), (0,1), (0,0)] = [2,3] => [ とします。 (1,0,0), (0,1,0)] x [2,3] = [3,3]
于 2016-06-09T03:33:33.740 に答える