Как решить ошибку умножения матрицы - PullRequest
0 голосов
/ 13 июня 2019
w, b, X, Y = np.array([[1.],[2.]]), 2., np.array([[1.,2.,-1.],[3.,4.,-3.2]]), np.array([[1,0,1]])
w1 = w.T
print(np.matmul(X*w1))

Этот код выдает следующую ошибку:

ValueError: operands could not be broadcast together with shapes (2,3) (1,2) 

Как мне это решить?

1 Ответ

0 голосов
/ 19 июля 2019

Умножение матриц здесь не ваша проблема.Это умножение, которое вы пытаетесь сделать: X*w1.Это невозможно.Если вы хотите умножить два массива, они должны иметь одинаковую форму, иначе вы можете использовать трансляцию.Но чтобы вещание работало, все оси, кроме одной, должны иметь одинаковую длину.Так что это было бы невозможно в этом случае.

Кажется, что вы на самом деле пытаетесь сделать это умножение матриц.Для этого нужны две матрицы, поэтому вы не можете сначала умножить их.Кроме того, чтобы две матрицы были умножены таким образом, количество столбцов первой матрицы должно равняться количеству строк второй.Таким образом, следующее будет работать и, вероятно, вы пытаетесь сделать:

np.matmul(w1, X)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...