目前在看深度学习入门(基于Python)这本书,运行的是里面的示例代码。 在训练完成模型后,对手写数字测试集取单一图片进行预测。在预测的时候,用到了y = Wx + b。wx是矩阵相乘,但是现在有3个W,3个b,上一次的输出的维度不能和下一个W的维度对应,是我哪方面有问题吗,欢迎各位指教
img = x_train[0].reshape(1,1,28,28)
x = im2col(img, 5, 5) # (48400, 25)
def predict(network, x):
W1, W2, W3 = network['W1'], network['W2'], network["W3"] # (30, 1, 5, 5)(363000, 100)(100, 2)
b1, b2, b3 = network['b1'], network['b2'], network['b3'] # (30,)(100, )(2, )
col_W1 = W1.reshape(30, -1).T # (25, 30)
# print(x.shape, col_W1.shape)
a1 = np.dot(x, col_W1) + b1
z1 = sigmoid(a1) # (48400,30)
# 运行这里时候 (48400,30) * (363000, 100) 我应该怎么办?变形或者什么?
a2 = np.dot(z1, W2) + b2
z2 = sigmoid(a2)
a3 = np.dot(z2, W3) + b3
y = softmax(a3)
return y