郭震 AI公众号:郭震AI

25 11.2 实战案例讲解

发布日期:

最近更新:

分类: Tensorflow小白

预计阅读: 4 分钟

阅读次数: 0

系列进度

TensorFlow 入门 · 第 25 / 25

上一篇项目需求分析已到最后一篇
预计阅读4 分钟
结构重点9 个
图文要点6 张
正文规模1.5k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

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

阅读路线

先按这条路线读

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

图文要点

先看本文图文节点

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

11.2 实战案例讲解结构图查看大图
11.2 实战案例讲解结构图

TensorFlow 学习要把张量、模型、训练和部署放在一条线上,而不是只看单段代码。阅读时可以按「项目背景 -> 前期准备 -> 数据加载与预处理 -> 搭建神经网络模型」建立结构,再回到正文里的代码、案例或指标做验证。

11.2 实战案例讲解核对图查看大图
11.2 实战案例讲解核对图

读完后,用一个真实小任务复查:输入是什么,处理环节在哪里,输出是否可验收;失败时先查「项目背景」,再查「前期准备」。

在本节中,我们将通过一个具体的案例来展示如何利用 TensorFlow 实现一个简单的深度学习项目。我们将结合 11.1 节中提到的项目需求进行实战讲解。项目的目标是使用神经网络来对手写数字进行分类,并且我们将使用 MNIST 数据集作为我们的训练和测试数据。

项目背景

在机器学习领域,手写数字识别是一个经典的任务。MNIST 数据集包含了 70,000 张 28x28 像素的手写数字图像,其中 60,000 张用于训练,10,000 张用于测试。任务的目标是根据输入的图像预测出对应的数字(0-9)。

前期准备

在开始之前,我们需要安装 TensorFlow 库。打开终端并运行以下命令:

pip install tensorflow

数据加载与预处理

首先,我们需要加载 MNIST 数据集并对数据进行预处理。在 TensorFlow 中,可以使用 tf.keras.datasets 来方便地加载数据。

以下是加载和预处理数据的代码:

import tensorflow as tf
from tensorflow.keras import layers, models

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

# 数据标准化,转换到 [0, 1] 之间
train_images = train_images.astype('float32') / 255.0
test_images = test_images.astype('float32') / 255.0

这段代码完成了以下几件事情:

  1. 加载 MNIST 数据集,并将数据集分为训练集和测试集。
  2. 将图像的像素值转换为 float32 类型并进行标准化,确保值在 [0, 1] 之间。

搭建神经网络模型

接下来,我们将搭建一个简单的神经网络模型。我们选择一个包含两个全连接层的模型,其中使用 ReLU 激活函数和 softmax 输出层。

以下是模型的构建代码:

model = models.Sequential([
    layers.Flatten(input_shape=(28, 28)),  # 将 28x28 的图像展平为一维
    layers.Dense(128, activation='relu'),   # 第一层:128 个神经元,ReLU 激活函数
    layers.Dense(10, activation='softmax')   # 输出层:10 个神经元,softmax 激活函数
])

编译模型

在训练模型之前,我们需要编译模型,指定损失函数和优化器。我们使用 sparse_categorical_crossentropy 作为损失函数,因为我们的标签是整数形式,adam 作为优化器。

以下是编译模型的代码:

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

训练模型

接下来,我们将使用训练数据来训练模型。我们指定训练的轮数为 5,并设置批次大小为 32。

11.2实战案例讲解要点判断卡查看大图
11.2实战案例讲解要点判断卡

读这篇时,可以把「项目背景 -> 前期准备 -> 数据加载与预处理 -> 搭建神经网络模型」当成一条检查线:先看对象、路径和证据,再回到案例、代码或指标里复查。

以下是训练模型的代码:

model.fit(train_images, train_labels, epochs=5, batch_size=32)

评估模型

训练完成后,我们需要在测试集上评估模型的性能。我们将使用 evaluate 方法来计算模型的损失和准确率。

以下是评估模型的代码:

test_loss, test_accuracy = model.evaluate(test_images, test_labels)
print(f"Test accuracy: {test_accuracy:.4f}")

使用模型进行预测

最后,我们可以使用训练好的模型对新的手写数字进行预测。我们将用测试集中的前五个图像进行示范。

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

读完《11.2 实战案例讲解》不要只停在“看懂了”。回头挑一个步骤动手做一遍,再记录哪里卡住,后面的学习会更稳。

以下是进行预测的代码:

predictions = model.predict(test_images[:5])
predicted_classes = tf.argmax(predictions, axis=1)
print(f"Predicted classes: {predicted_classes.numpy()}")
print(f"True classes: {test_labels[:5]}")
11.2 实战案例讲解应用复盘卡查看大图
11.2 实战案例讲解应用复盘卡

复习《11.2 实战案例讲解》时,建议把关键概念、操作步骤和可见结果放在同一页里回看。

11.2 实战案例讲解应用检查卡查看大图
11.2 实战案例讲解应用检查卡

练习《11.2 实战案例讲解》时,建议把输入条件、处理动作和可见结果写在一起,方便下次复查。

总结

在本节中,我们详细介绍了如何使用 TensorFlow 搭建一个简单的手写数字识别模型。我们完成了以下步骤:

  1. 加载和预处理 MNIST 数据集。
  2. 搭建神经网络模型。
  3. 编译和训练模型。
  4. 评估模型的性能。
  5. 使用模型进行预测。

此案例展示了使用 TensorFlow 进行深度学习项目的基础流程,也是今后深入学习的基础。在下一节中,我们将讨论对模型进行调优的技术与方法,进一步提升模型的性能。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

11.2 实战案例讲解适合谁读?

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

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

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

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

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

分享文章

转发到常用平台

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

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

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

最多 800 字

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

0/800

留言列表

0
正在加载留言...