Jak wykonać mnożenie tensorów z dwóch macierzy A (m, n) i B (n, k), tak aby uzyskać C (m, n, k) używając pythona ... Czy można to zrobić za pomocą ramek danych czy numpy?
Odpowiedzi:
1 dla odpowiedzi № 1Jest to prosty nadawany produkt zewnętrzny w numpy
:
In [560]: m,n,k=2,3,4
In [561]: A=np.ones((m,n))
In [562]: B=np.ones((n,k))
In [563]: C=A[:,:,None]*B[None,:,:]
In [564]: C.shape
Out[564]: (2, 3, 4)
Proces ten jest również łatwy do wykonania np.einsum
, chociaż jest to trochę przesadzone, ponieważ nie podsumowujesz żadnego wymiaru (jak w przypadku a np.dot
produkt):
In [565]: np.einsum("mn,nk->mnk",A,B).shape
Out[565]: (2, 3, 4)
Podobne pytanie sprzed 2 dni
numpy: rozgłaszanie mnożenia przez jedną wspólną oś dwóch tablic 2D
Biorąc pod uwagę szeroki charakter twojego pytania, prawdopodobnie wiele jest o mojej odpowiedzi, której nie rozumiesz, ale najpierw musisz przeczytać niektóre dokumenty.