ValueError Traceback most recent call lastCell In17 line 67 64 nn = NeuralNetwork2 3 1 66 # 训练神经网络--- 67 nntrainX y 10000 69 # 预测新的数据 70 printnnpredictXC
在神经网络的反向传播过程中,出现了一个形状不匹配的错误。具体来说,错误信息显示的是:
ValueError: shapes (50,3) and (1,3) not aligned: 3 (dim 1) != 1 (dim 0)
这个错误是由于矩阵乘法中的形状不匹配引起的。在代码中,我们需要将self.delta2与self.W2进行矩阵乘法运算,但是它们的形状不匹配。
在这种情况下,self.delta2的形状是(50, 3),表示50个样本中每个样本的3个输出误差,而self.W2的形状是(1, 3),表示1个隐藏层神经元与3个输出层神经元之间的权重。
要解决这个问题,我们需要将self.W2的形状转置,使其变为(3, 1),这样就可以与self.delta2的形状进行矩阵乘法运算。
修改代码如下:
self.error_hidden = np.dot(self.delta2, self.W2.T)
这样就可以修复这个错误,并继续训练神经网络。
原文地址: https://www.cveoy.top/t/topic/iKlM 著作权归作者所有。请勿转载和采集!