Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
配列AとB両方の次元MxNxHがあります。
A
B
結果がMxN次元になるように、「乗算」する二項演算子を定義したいと思います。
同等の操作は次のようになります。
C = A[:,:,0] * B[:,:,0] + A[:,:,1] * B[:,:,1] + .... + A[:,:,H] * B[:,:,H]
より効率的な方法でこの操作を行う方法はありますか? たとえば、numpyに組み込まれている関数を使用しますか?
試しtensordotましたが、結果が異なります。
tensordot
最も簡単なのは次のとおりです。
C = numpy.sum(A * B, -1)
これもうまくいくと思います:
C = numpy.einsum("...i,...i->...", A, B)
これを試してください: numpy.sum( A*B, axis=2 )
これは他の提案と似ていますが、おそらくより明確です (軸は 0 から番号付けされるため、軸 = 2 は 3 番目の軸または MxNxH のうちの H です)