Ich implementiere ein neuronales Netzwerk in Python, als Teil der Backpropagation muss ich eine 3D-Matrix multiplizieren, nennen Sie es A, Dimension (200, 100, 1)
, durch eine 2D-Matrix, nennen Sie es W, Dimension (100, 200)
Das Ergebnis sollte die Abmessungen (200, 200, 1)
haben.Multidimensionale Matrixmultiplikation auf numpy Array
A ist ein Fehlervektor, W ist eine Gewichtsmatrix, das Produkt wird verwendet, um die Aktualisierungen für die vorherige Schicht zu berechnen.
ich versuchte, es unter Verwendung matrix_multiply
(from numpy.core.umath_tests
) zu lösen, habe ich versucht, W (100,200,1) Umformen und dann Multiplikation, aber das führt
ValueError: matrix_multiply: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (m,n),(n,p)->(m,p) (size 100 is different from 1)
.
Wie kann ich das lösen?
Haben Sie einen zwingenden Grund dafür, die Form von "A" als (200, 100, 1) zu behalten, statt die triviale Dimension fallen zu lassen und ihre Form zu erhalten (200, 100)? –
@WarrenWeckesser Ich habe diese Option nicht berücksichtigt. Danke für den Vorschlag, ich werde es erkunden. – dpk