我是Keras的新手,我正在学习构建卷积神经网络模型。我正在使用MNIST数据集。
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim sHTML As String
sHTML = "<P>This is some text.</P>"
WebBrowser1.Document.body.innerHTML = sHTML
End Sub
在构建和评估之后,我的准确率达到99%。
(X_train, y_train), (X_test, y_test) = mnist.load_data()
现在,我想通过选择一个随机图像手动检查结果,使用matplotlib打印它,然后使用学习模型进行预测。例如,X_test [39]数据看起来像this。
model = NN_model() # Sequential model built with multiple Convolution and pooling layers
model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=3, batch_size=200, verbose=2)
scores = model.evaluate(X_test, y_test, verbose=0)
当我尝试这样做时,它会要求我将预处理数据转换为conv2d数据,因为模型正在转换它。如何手动对测试数据应用此转换?
print(model.predict(X_test[39],verbose=2))
答案 0 :(得分:5)
模型没有转换任何内容,网络采用一批形状为(num_samples, channels, width, height)
的图像。在这种情况下,您只有一个样本,因此您应该通过添加新维度将num_samples
设置为1:
sample = X_test[39]
model.predict(sample[np.newaxis, :, :, :])
或者您也可以将示例数组重新整形为(1, 1, 28, 28)
。
答案 1 :(得分:2)
我认为你需要重塑数据(可能是在训练时在模型中完成,不能没有代码)。尝试这样的事情:
print(model.predict(X_test[39].reshape(-1, 28, 28, 1),verbose=2))