問題タブ [numpy-einsum]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
106370 参照

python - NumPy の einsum を理解する

どのように機能するかを正確に理解するのに苦労していeinsumます。ドキュメントといくつかの例を見てきましたが、固執していないようです。

授業で取り上げた例を次に示します。

2 つの配列の場合:AおよびB.

これにはA^T * B. ここで何が起こっているのか(そして一般的に を使用しているときeinsum)、誰かが私に教えてくれますか?

0 投票する
1 に答える
621 参照

python - 軸の順列を取得するためのnumpy einsum

「np.einsum」のドキュメントで私が理解したのは、順列文字列がベクトルの軸の順列を与えるということです。これは、次の実験で確認されています。

しかし、これは理解できません:

代わりに (4, 2, 3) を期待します...私の理解の何が問題になっていますか?

0 投票する
1 に答える
601 参照

python - アーキテクチャはnumpy配列操作のパフォーマンスにどのように影響しますか?

Intelの数学カーネルライブラリ(MKL)がインストールされた「Anaconda」Pythonディストリビューションを備えたUbuntu 14.04があります。私のプロセッサは、8 コアの Intel Xeon であり、ハイパースレッディングはありません (つまり、8 スレッドのみ)。

私にとって numpyは、大規模な配列に対してtensordot一貫して優れています。einsumただし、他の人は、2つの間にほとんど違いがないこと、または一部の操作で einsum が numpy よりも優れていることさえ発見しています。

高速ライブラリで構築されたディストリビューションを使用している人々にとってnumpy、なぜこれが起こるのか疑問に思っています. インテル以外のプロセッサーでは、MKL の実行速度が遅くなりますか? それともeinsum、より優れたスレッド機能を備えた最新の Intel プロセッサでより高速に動作しますか?

私のマシンでのパフォーマンスを比較するための簡単なコード例を次に示します。

tensordot を使用したテンソル演算は、一貫して 5 ~ 20 GFLOP の範囲で実行されます。私は einsum で 0.2 GFLOPS しか得られません。

0 投票する
1 に答える
1538 参照

python - メッシュグリッドの回転のための Numpy einsum()

meshgrid() を使用して生成された 3D 座標のセットがあります。これらを3軸で回転できるようにしたいです。

メッシュグリッドを解き、各ポイントで回転を試みましたが、メッシュグリッドが大きく、メモリが不足しています。

この質問は、einsum() を使用して 2d でこれに対処しますが、3d に拡張するときの文字列形式がわかりません。

einsum() とそのフォーマット文字列に関する他のページをいくつか読みましたが、理解できませんでした。

編集:

メッシュグリッドの軸を X、Y、Z と呼び、それぞれの形状は (213、48、37) です。また、結果をメッシュグリッドに戻そうとすると、実際のメモリ エラーが発生しました。

ポイントごとの回転を行うために「解明」しようとしたとき、次の関数を使用しました。

次のように結果をループしました。

回転後、ポイントを使用して補間します。

0 投票する
1 に答える
966 参照

numpy - Juliaのnumpy.einsum? (2)

この質問から来て、より一般化された einsum が可能だったのではないかと思います。問題があったと仮定しましょう

または同様のもの、合計をループせずにこの問題を解決するにはどうすればよいですか?

敬具

0 投票する
1 に答える
205 参照

python - この np.einsum('kij',A) の結果を理解する方法は?

例えば、

これはまだA問題ありません。

しかし、私が行うとprint np.einsum('kij', A)、形状は(3, 4, 2). そうではない(4, 2, 3)でしょうか?

print np.einsum('cab', A)形状の(4, 2, 3)仕上がりも問題ありません。なぜprint np.einsum('kij', A)同じではないのですか?