저는 backpropagation의 일부로 파이썬에서 신경망을 구현하고 있습니다. 3D 행렬을 곱해야합니다. 차원 코드 (200, 100, 1)
을 2D 행렬로 호출하고 치수는 (100, 200)
입니다. 결과의 크기는 (200, 200, 1)
이어야합니다.numpy 배열의 다차원 행렬 곱셈
A는 오류 벡터이고, W는 가중치 행렬이며, 제품은 이전 계층에 대한 업데이트를 계산하는 데 사용됩니다.
은 난 후 (100,200,1)와 승산 w을 재편 시도matrix_multiply
(
from numpy.core.umath_tests
)을 사용하여 해결하려고하지만
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)
어떻게 해결할 수 있습니까?
사소한 치수를 삭제하고 모양 (200, 100)을 만드는 대신 'A'의 모양을 (200, 100, 1)으로 유지해야 할 강력한 이유가 있습니까? –
@WarrenWeckesser 그 옵션을 고려하지 않았습니다. 제안을 주셔서 감사 드리며, 저는 그것을 탐구 할 것입니다. – dpk