2

配列AB両方の次元MxNxHがあります。

結果がMxN次元になるように、「乗算」する二項演算子を定義したいと思います。

同等の操作は次のようになります。

C = A[:,:,0] * B[:,:,0] + A[:,:,1] * B[:,:,1] + .... + A[:,:,H] * B[:,:,H]

より効率的な方法でこの操作を行う方法はありますか?
たとえば、numpyに組み込まれている関数を使用しますか?

試しtensordotましたが、結果が異なります。

4

2 に答える 2

2

最も簡単なのは次のとおりです。

C = numpy.sum(A * B, -1)

これもうまくいくと思います:

C = numpy.einsum("...i,...i->...", A, B)
于 2012-11-15T22:45:30.657 に答える
1

これを試してください: numpy.sum( A*B, axis=2 )

これは他の提案と似ていますが、おそらくより明確です (軸は 0 から番号付けされるため、軸 = 2 は 3 番目の軸または MxNxH のうちの H です)

于 2012-11-16T00:28:25.403 に答える