首页 > 解决方案 > 为权重和偏差生成随机向量和矩阵

问题描述

我试图根据传感器 x1 和 x2 了解火灾的可能性。

y=1 

为此,我正在尝试为权重和偏差生成随机向量和矩阵,但出现错误。

import numpy as np

np.random.seed(seed=123)
w1 = np.random.rand(4,2)
b1 = 4*1
x = np.array([0.4, 0.32])

z1 = np.dot(w1,x) + b1
a1 = 1 / (1+np.exp(-z1))

np.random.seed(seed=123)
w2 = np.random.rand(1,4)
b2 = 1*1

z2 = np.dot(w2,x) + b2
a2 = 1 /(1+np.exp(-z2))

但我收到以下错误:

----> 1 z2 = np.dot(w2,x) + b2
      2 a2 = np.tanh(Z1)
      3 print(a2)

ValueError: shapes (2,4) and (2,) not aligned: 4 (dim 1) != 2 (dim 0)

我无法弄清楚如何解决这个问题。

标签: pythonnumpysigmoid

解决方案


答案就在错误中 - 您正在尝试将矩阵相乘w2x,它们有无效的要相乘的维度。

矩阵w2有 1 行 4 列:

>>> w2 = np.random.rand(1,4)
>>> w2.shape
(1, 4)

矩阵x有 2 个条目:

>>> x = np.array([0.4, 0.32])
>>> x.shape
(2,)

因此,您不能将这些矩阵相乘 - 只有当且仅当第一个矩阵中的列数 ,w2等于第二个矩阵中的行数时,矩阵才能相乘x。在这里,正如错误所说,4 (dim 1) != 2 (dim 0).

您可以通过给出x四行或w2两列来解决此问题。

希望这可以帮助。


推荐阅读