У меня есть следующие массивы со следующими размерами:
А (2 х 1 х 10). В общем виде (N x 1 x D)
B (30 x 10)
Мне нужно сделать точечное произведение их обоих, используя np.matmul
таким образом, что matmul
умножает N матриц с формой 1xD из A с другим аргументом B.
Глядя на размеры A и B, следует подумать, что мне нужно сделать транспонирование B перед умножением, чтобы можно было сделать произведение.
B_transpose = np.transpose(B)
Теперь B_transpose
равно (10 x 30)
Но когда я это сделаю matmul
:
output = np.matmul(A, B_transpose)
выдает ошибку:
ValueError: фигуры (2,1,10) и (2,1,30) не выровнены: 10 (тусклый 2)! = 1 (тусклый 1)
На самом деле, это меняет размеры B_transpose, и я не знаю почему. Это должно быть (10 х 30). Я проверил это с B_transpose.shape
, и это все. Но при умножении он конвертирует его в (2 x 1 x 30). Почему это так?
Спасибо.