問題タブ [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 投票する
1 に答える
784 参照

numpy - Numpy Einsum パスの違いと最適化引数

次のテンソル実行があります。

そして、'z' または 'q' の次元が拡張されると、実行時間が非常に長くなることに気付きました。私の直感では、おそらくそれほど悪くはないはずでした。手動のテンソル収縮によって最適化できたのは私の入力フォームだったのかもしれません。

少し掘り下げた後、最適化には「最適」と「貪欲」の2つのモードがあることがわかりました。両方のモードに対してパスを評価した場合、それぞれ次のようになります。

テストした結果は、示されているように、「最適」の方がはるかに高速であるということです。

質問

違いが何であり、「貪欲」がデフォルトに設定されている理由を簡単に説明できる人はいますか?

常に「最適」を使用することの欠点は何ですか?

私の einsum 計算が何千回も実行される場合 (これは最適化の反復の一部として実行されます)、実行を再構築して、再計算する必要なく (または「貪欲な」パス)毎回?

0 投票する
0 に答える
196 参照

python - numexpr を使用したアインシュタイン総和の評価

私は現在、 を使用して大規模な numpy 配列の乗算を行っており、問題numpy.einsumに直面していMemoryErrorます。そのため、可能な限り式を評価しようとしていnumexprます。私が理解する限りでは:

技術的には

ただし、他の場合はそれほど単純ではないようです。次の 3 つの式があるとします。

を使用してこれら 3 つを達成する同等の方法は何でしょうnumexprか?