1
定義如何在Numpy/Theano中表達c [i,j,k] = a [i,j] * b [i,k]?
c[i,j,k] = a[i,j] * b[i,k] for any i, j, k
是相對於一個i
元素之積,和一個外產物相對於j
和k
。有沒有什麼方法可以在沒有循環的情況下在NumPy/Theano中表達這一點?
定義如何在Numpy/Theano中表達c [i,j,k] = a [i,j] * b [i,k]?
c[i,j,k] = a[i,j] * b[i,k] for any i, j, k
是相對於一個i
元素之積,和一個外產物相對於j
和k
。有沒有什麼方法可以在沒有循環的情況下在NumPy/Theano中表達這一點?
我發現,既與NumPy和Theano有效的解決方案:
c = a[:, :, np.newaxis] * b[:, np.newaxis, :]
是的,就是這樣。並且適用於兩者。另一個與the numpy不兼容的「theano style」選項是使用'dimshuffle','c = a.dimshuffle(0,1,'x')* b.dimshuffle(0,'x',1)'。 – eickenberg
您是否在尋找['numpy.einsum'](http://docs.scipy.org/doc/numpy/reference/生成/ numpy.einsum.html)? –
@AshwiniChaudhary不 - 我甚至沒有總結任何東西! – MaxB
@MaxB:你可以通過控制輸出標籤來告訴'einsum'不要沿軸求和。 'np.einsum('ij,ik-> ijk',a,b)'可以在NumPy中工作。 –