Keras - 模型评估和模型预测


本章讨论 Keras 中的模型评估和模型预测。

让我们首先了解模型评估。

模型评估

评估是模型开发过程中检查模型是否最适合给定问题和相应数据的过程。Keras模型提供了一个函数evaluate,用于对模型进行评估。它有三个主要论点,

  • 测试数据
  • 测试数据标签
  • 详细 - true 或 false

让我们评估我们在上一章中使用测试数据创建的模型。

score = model.evaluate(x_test, y_test, verbose = 0) 

print('Test loss:', score[0]) 
print('Test accuracy:', score[1])

执行上述代码将输出以下信息。

0

测试准确率为98.28%。我们创建了一个识别手写数字的最佳模型。从积极的一面来看,我们仍然可以改进我们的模型。

模型预测

预测是模型生成的最后一步,也是我们的预期结果。Keras 提供了一个方法, predict来获得训练模型的预测。预测方法的签名如下,

predict(
   x, 
   batch_size = None, 
   verbose = 0, 
   steps = None, 
   callbacks = None, 
   max_queue_size = 10, 
   workers = 1, 
   use_multiprocessing = False
)

这里,除了第一个参数之外的所有参数都是可选的,它引用未知的输入数据。应保持形状以获得正确的预测。

让我们使用下面的代码对上一章中创建的 MPL 模型进行预测 -

pred = model.predict(x_test) 
pred = np.argmax(pred, axis = 1)[:5] 
label = np.argmax(y_test,axis = 1)[:5] 

print(pred) 
print(label)

这里,

  • 第 1 行使用测试数据调用预测函数。

  • 第 2 行获取前 5 个预测

  • 第 3行获取测试数据的前五个标签。

  • 第 5 - 6 行打印预测和实际标签。

上述应用程序的输出如下 -

[7 2 1 0 4] 
[7 2 1 0 4]

两个数组的输出是相同的,这表明我们的模型正确预测了前五张图像。