- 使用Keras进行深度学习教程
- 使用Keras进行深度学习 - 首页
- 使用Keras进行深度学习 - 简介
- 深度学习
- 项目设置
- 导入库
- 创建深度学习模型
- 编译模型
- 准备数据
- 训练模型
- 评估模型性能
- 对测试数据进行预测
- 保存模型
- 加载模型进行预测
- 结论
- 使用Keras进行深度学习资源
- 使用Keras进行深度学习 - 快速指南
- 使用Keras进行深度学习 - 有用资源
- 使用Keras进行深度学习 - 讨论
评估模型性能
为了评估模型性能,我们调用evaluate方法,如下所示:
loss_and_metrics = model.evaluate(X_test, Y_test, verbose=2)
为了评估模型性能,我们调用evaluate方法,如下所示:
loss_and_metrics = model.evaluate(X_test, Y_test, verbose=2)
我们将使用以下两条语句打印损失和准确率:
print("Test Loss", loss_and_metrics[0]) print("Test Accuracy", loss_and_metrics[1])
运行上述语句后,您将看到以下输出:
Test Loss 0.08041584826191042 Test Accuracy 0.9837
这显示了98%的测试准确率,这对我们来说应该是可以接受的。这意味着在2%的情况下,手写数字将无法被正确分类。我们还将绘制准确率和损失指标,以查看模型在测试数据上的表现。
绘制准确率指标
我们使用训练期间记录的history来获取准确率指标的图表。以下代码将绘制每个epoch的准确率。我们选择训练数据准确率(“acc”)和验证数据准确率(“val_acc”)进行绘制。
plot.subplot(2,1,1) plot.plot(history.history['acc']) plot.plot(history.history['val_acc']) plot.title('model accuracy') plot.ylabel('accuracy') plot.xlabel('epoch') plot.legend(['train', 'test'], loc='lower right')
输出图表如下所示:
正如您在图中看到的,准确率在前两个epoch迅速增加,表明网络学习速度很快。之后,曲线趋于平缓,表明不需要太多epoch来进一步训练模型。通常,如果训练数据准确率(“acc”)持续提高,而验证数据准确率(“val_acc”)变差,则会遇到过拟合问题。这表明模型开始记忆数据。
我们还将绘制损失指标来检查模型的性能。
绘制损失指标
同样,我们绘制训练数据(“loss”)和测试数据(“val_loss”)的损失。这是使用以下代码完成的:
plot.subplot(2,1,2) plot.plot(history.history['loss']) plot.plot(history.history['val_loss']) plot.title('model loss') plot.ylabel('loss') plot.xlabel('epoch') plot.legend(['train', 'test'], loc='upper right')
此代码的输出如下所示:
正如您在图中看到的,训练集的损失在前两个epoch迅速下降。对于测试集,损失的下降速度不如训练集,但在多个epoch中几乎保持不变。这意味着我们的模型能够很好地泛化到未见数据。
现在,我们将使用训练好的模型来预测测试数据中的数字。
广告