郭震 AI公众号:郭震AI

18 Keras框架从零教程系列:使用evaluate方法进行模型评估与预测

发布日期:

最近更新:

分类: Keras

预计阅读: 4 分钟

阅读次数: 0

预计阅读4 分钟
结构重点9 个
图文要点6 张
正文规模1.6k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 9 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

evaluate 和 predict流程图查看大图
evaluate 和 predict流程图

evaluate 给整体指标,predict 给逐样本输出。两者结合,才能从分数走到具体决策。

evaluate 和 predict实操核对图查看大图
evaluate 和 predict实操核对图

我会抽样看 predict 的原始概率和后处理结果。只看类别名,容易忽略阈值问题。

在上一篇中,我们探讨了如何评估模型性能,包括使用各种指标来判断模型的好坏。这一篇,我们将专注于使用Keras框架中的evaluate方法进行更具体的模型评估与预测。通过结合实际案例和代码示例,我们将深入理解如何使用这一功能。

什么是evaluate方法?

evaluate方法是Keras中一个非常重要的工具,用于评估已训练模型在给定数据集上的性能。具体而言,它会根据指定的数据和标签评估模型的损失值和其他指标。

Keras评估预测判断卡查看大图
Keras评估预测判断卡

使用 Keras evaluate 与 predict 时,先看测试数据、批量设置、指标输出、预测形状、错误样例和结果解释。

方法签名

model.evaluate(x=None, y=None, batch_size=None, verbose=1, steps=None, callbacks=None, max_queue_size=10, workers=1, use_multiprocessing=False)

  • x: 输入数据,可以是NumPy数组、TensorFlow张量或Python生成器。
  • y: 标签数据,与x应配对。
  • batch_size: 每个批次的样本数。
  • verbose: 日志显示模式,0:不输出日志,1:输出进度条,2:每个epoch输出一行日志。
  • steps: 在评估模型时生成数据的总步骤数,适用于生成器。
  • callbacks: 在评估期间应用的回调函数。

案例分析

让我们通过一个简单的例子来演示如何使用evaluate方法。

Keras阅读地图卡查看大图
Keras阅读地图卡

学《Keras框架从零教程系列:使用evaluate方法进行模型评估与预...》时,可以先找一个自己能复现的小场景,再看相关概念和练习步骤,读完后用自己的例子复述一遍。

数据准备

我们将使用Keras自带的MNIST手写数字数据集,它包含70,000个28x28的灰度图像,分为训练集和测试集。

import numpy as np
from tensorflow.keras import datasets, models, layers, losses, optimizers

# 加载数据
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()

# 数据预处理
train_images = train_images.reshape((60000, 28, 28, 1)).astype("float32") / 255
test_images = test_images.reshape((10000, 28, 28, 1)).astype("float32") / 255

# 将标签转换为类别形式
train_labels = np.eye(10)[train_labels]
test_labels = np.eye(10)[test_labels]

模型构建

接下来,我们构建一个简单的卷积神经网络(CNN),用于手写数字识别。

model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Flatten(),
    layers.Dense(64, activation='relu'),
    layers.Dense(10, activation='softmax')
])

model.compile(optimizer=optimizers.Adam(),
              loss=losses.CategoricalCrossentropy(),
              metrics=['accuracy'])

模型训练

我们使用训练数据对模型进行训练,设定适当的批量大小和训练轮数。

model.fit(train_images, train_labels, epochs=5, batch_size=64, verbose=1)

使用evaluate方法评估模型

模型训练完成后,我们就可以使用evaluate方法来评估模型在测试集上的性能。

test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=1)
print(f"Test loss: {test_loss:.4f}, Test accuracy: {test_acc:.4f}")

在这个代码中,test_loss是模型在测试集上的损失,test_acc是准确率。这些指标将帮助我们理解模型的实际性能。

理解evaluate的输出

在使用evaluate方法后,我们获得的两个值分别表示:

  • 损失(Loss):该值越低,表明模型的预测结果和真实标签之间的差异越小。
  • 准确率(Accuracy):该值越高,表明模型预测的正确性越强。
Keras框架从零教程系列:使用evaluate方法进行模型评估与预测应用复盘卡查看大图
Keras框架从零教程系列:使用evaluate方法进行模型评估与预测应用复盘卡

学完《Keras框架从零教程系列:使用evaluate方法进行模型评估与预测》后,不妨换一个自己的场景试一次,重点观察输入、处理和输出是否能对应起来。

Keras框架从零教程系列:使用evaluate方法进行模型评估与预测应用检查卡查看大图
Keras框架从零教程系列:使用evaluate方法进行模型评估与预测应用检查卡

如果想把《Keras框架从零教程系列:使用evaluate方法进行模型评估与预测》用到自己的任务里,可以先缩小场景,只验证一个最关键的判断点。

小结

在本篇中,我们详细介绍了如何使用Keras的evaluate方法对已训练的模型进行评估。我们通过具体的代码示例演示了如何处理数据、构建模型、训练模型,以及如何使用evaluate方法获取模型在测试集上的性能指标。这为后续的模型预测打下了坚实的基础,它将在下一篇讨论中展开。

在下一篇中,我们将进一步探索如何使用Keras进行模型预测,让我们敬请期待。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

Keras框架从零教程系列:使用evaluate方法进行模型评估与预测适合谁读?

这是 Keras 入门 系列第 18 / 28 篇,适合正在学习Keras 入门,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇Keras 入门教程要多久?

按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...