Mam matrycę P
o kształcie MxN
i tensor 3d T
o kształcie KxNxR
. Chcę pomnożyć P
z każdą macierzą NxR
w T
, otrzymując w ten sposób tensor 3D o wartości KxMxR
.Numpy: pomnożenie macierzy za pomocą tensora 3d - sugestia
P.dot(T).transpose(1,0,2)
daje oczekiwany wynik. Czy istnieje rozwiązanie ładniejszego (tj. Pozbycie się transpose
) tego problemu? To musi być dość powszechna operacja, więc zakładam, że inni znaleźli różne podejścia, np. używając tensordot
(którego próbowałem, ale nie udało mi się uzyskać pożądanego rezultatu). Opinie/widoki byłyby wysoko cenione!
Ha! Wpatrywałem się w wynik 'scipy.tensordot (P, T, axes = [1,1])' godzinami wczoraj, rozpaczając nad wymienianymi wymiarami. Nie wiedziałem o 'swapaxes', dzięki! – osdf
Nie ma za co. Sprawdziłem również, czy zamiana osi daje prawidłową odpowiedź numeryczną i tak się dzieje. –