タグ付けされた質問 「matrix-multiplication」

12
なぜ、MATLABは行列乗算でこれほど高速なのですか?
CUDA、C ++、C#、Javaでベンチマークを作成し、検証とマトリックス生成にMATLABを使用しています。MATLABで行列乗算を実行する2048x2048と、さらに大きな行列がほぼ瞬時に乗算されます。 1024x1024 2048x2048 4096x4096 --------- --------- --------- CUDA C (ms) 43.11 391.05 3407.99 C++ (ms) 6137.10 64369.29 551390.93 C# (ms) 10509.00 300684.00 2527250.00 Java (ms) 9149.90 92562.28 838357.94 MATLAB (ms) 75.01 423.10 3133.90 CUDAだけが競争力がありますが、少なくともC ++はやや近づき、60倍遅くなるとは思いませんでした。また、C#の結果についてどう考えればよいかわかりません。アルゴリズムはC ++およびJavaとまったく同じですが、2048からの大きなジャンプがあり1024ます。 MATLABは行列乗算をどのように高速に実行しますか? C ++コード: float temp = 0; timer.start(); for(int j = 0; j …


8
乗算はNumPy MatrixクラスとArrayクラスでどのように異なりますか?
numpyのドキュメントでは、行列の操作に行列の代わりに配列を使用することを推奨しています。ただし、オクターブ(最近まで使用していた)とは異なり、*は行列乗算を実行しないため、関数matrixmultipy()を使用する必要があります。これにより、コードが非常に読みにくくなります。 誰かが私の意見を共有し、解決策を見つけましたか?

10
2048x2048の配列乗算と2047x2047の配列乗算でパフォーマンスに大きな影響があるのはなぜですか?
前に「MATLABが行列乗算で非常に高速である理由」で前述したように、いくつかの行列乗算ベンチマークを作成してい ます。 2つの2048x2048行列を乗算すると、C#と他の行列には大きな違いがあります。2047x2047の行列のみを乗算しようとすると、正常に見えます。比較のために他にもいくつか追加しました。 1024x1024-10秒。 1027x1027-10秒。 2047x2047-90秒。 2048x2048-300秒。 2049x2049-91秒。(更新) 2500x2500-166秒 これは、2k x 2kの場合の3.5分差です。 2dim配列の使用 //Array init like this int rozmer = 2048; float[,] matice = new float[rozmer, rozmer]; //Main multiply code for(int j = 0; j < rozmer; j++) { for (int k = 0; k < rozmer; k++) { float …

6
numpy dot()とPython 3.5+行列乗算の違い@
私は最近Python 3.5に移動し、新しい行列乗算演算子(@)がnumpyドット演算子とは異なる動作をする場合があることに気付きました。たとえば、3D配列の場合: import numpy as np a = np.random.rand(8,13,13) b = np.random.rand(8,13,13) c = a @ b # Python 3.5+ d = np.dot(a, b) @オペレータは、形状の配列を返します。 c.shape (8, 13, 13) しばらくnp.dot()関数が返します: d.shape (8, 13, 8, 13) どうすれば同じ結果をnumpy dotで再現できますか?他に大きな違いはありますか?

4
numpyで要素ごとの行列乗算(アダマール積)を取得するにはどうすればよいですか?
2つの行列があります a = np.matrix([[1,2], [3,4]]) b = np.matrix([[5,6], [7,8]]) そして私は、要素ごとの積を取得したい[[1*5,2*6], [3*7,4*8]]等しく、 [[5,12], [21,32]] 私が試してみました print(np.dot(a,b)) そして print(a*b) しかし、どちらも結果を出します [[19 22], [43 50]] これは要素ごとの積ではなく、行列積です。組み込み関数を使用して要素ごとの積(別名アダマール積)を取得するにはどうすればよいですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.