Sensor Multiplikation mit numpy Tensordot

ch habe einen Tensor U, der sich aus n Matrizen der Dimension (d, k) und einer Matrix V der Dimension (k, n) zusammensetz

Ich möchte sie so multiplizieren, dass das Ergebnis eine Matrix der Dimension (d, n) zurückgibt, in der die Spalte j das Ergebnis der Matrixmultiplikation zwischen der Matrix j von U und der Spalte j von V ist.

in möglicher Weg, dies zu erreichen, is

for j in range(n):
    res[:,j] = U[:,:,j] * V[:,j]

Ich frage mich, ob es einen schnelleren Ansatz mit @ ginumpy Bibliothek. Insbesondere denke ich an dienp.tensordot() Funktion.

Dieses kleine Snippet ermöglicht es mir, eine einzelne Matrix mit einem Skalar zu multiplizieren, aber die offensichtliche Verallgemeinerung auf einen Vektor gibt nicht das zurück, was ich mir erhofft hatte.

a = np.array(range(1, 17))
a.shape = (4,4)
b = np.array((1,2,3,4,5,6,7))
r1 = np.tensordot(b,a, axes=0)

Irgendein Vorschlag

Antworten auf die Frage(2)

Ihre Antwort auf die Frage