10 Keras框架从零教程:构建模型之顺序模型Sequential
系列进度
Keras 入门 · 第 10 / 28 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
Sequential 是 Keras 最快的入门路径,适合一层接一层的网络。它的优势是清楚,限制也是只能表达简单拓扑。
我会确认模型是否真的只有一条输入到输出的路径。一旦有共享层或多输入,就该换 Functional API。
在上一篇中,我们讨论了Keras的基本概念,以及如何选择合适的模型类型。今天,我们将深入探讨Keras中最简单和最常用的模型类型——顺序模型(Sequential)。顺序模型是一种线性堆叠多层的模型,非常适合于层与层之间逐步连接的常见任务,如分类和回归。
什么是顺序模型?
顺序模型是Keras中用于构建神经网络的一种方便的方式。它允许用户通过简单地将每一层添加到模型中,从而按顺序构建网络。每一层的输入都是前一层的输出,适合用于构建大多数简单的深度学习模型。
使用 Keras Sequential 时,先确认层的顺序、输入形状、输出维度、损失函数和优化器。
如何构建顺序模型?
在Keras中构建顺序模型非常简单。通常,你只需要以下几个步骤:
- 导入必要的库。
- 创建一个顺序模型。
- 添加层到模型中。
- 编译模型。
- 训练模型。
为了更好地理解这个过程,我们来看看一个实际的例子:构建一个用于手写数字识别的简单神经网络。
案例:手写数字识别
我们将使用经典的MNIST数据集,该数据集包含了大量的手写数字(0-9)。我们的目标是构建一个顺序模型来识别这些手写数字。
《Keras框架从零教程:构建模型之顺序模型Sequential》可以按“场景、概念、动作、结果”来读。先把这四件事对齐,再回到正文里的参数、代码或流程。
1. 导入必要的库
首先,我们需要导入Keras以及其他一些必需的库。
import numpy as np
import matplotlib.pyplot as plt
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.utils import to_categorical
2. 加载和预处理数据
接下来,我们加载MNIST数据集并进行预处理。我们将数据标准化到[0, 1]的范围,并将标签进行独热编码。
# 加载数据
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 数据标准化
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0
# 独热编码标签
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)
3. 创建顺序模型
现在,我们可以使用Sequential类来创建一个顺序模型。我们将使用一个Flatten层来展平输入,然后使用一个隐藏层和一个输出层。
model = Sequential()
model.add(Flatten(input_shape=(28, 28))) # 将28x28图像展平
model.add(Dense(128, activation='relu')) # 隐藏层
model.add(Dense(10, activation='softmax')) # 输出层
4. 编译模型
模型构建完成后,需要编译模型。我们选择使用categorical_crossentropy作为损失函数,adam作为优化器,并计算准确率(accuracy)作为评估指标。
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
5. 训练模型
接下来,我们使用训练数据来训练模型。这里我们将训练10个周期(epochs)。
model.fit(x_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
6. 评估模型
训练完成后,我们可以在测试集上评估模型的性能。
test_loss, test_accuracy = model.evaluate(x_test, y_test)
print(f'Test accuracy: {test_accuracy:.4f}')
7. 可视化结果
最后,我们可以可视化一些识别结果,以便更好地理解模型的表现。
predictions = model.predict(x_test)
# 显示前5个测试图像的预测结果
for i in range(5):
plt.imshow(x_test[i], cmap='gray')
plt.title(f'Predicted: {np.argmax(predictions[i])}, Actual: {np.argmax(y_test[i])}')
plt.axis('off')
plt.show()
学完《Keras框架从零教程:构建模型之顺序模型Sequential》后,不妨换一个自己的场景试一次,重点观察输入、处理和输出是否能对应起来。
如果想把《Keras框架从零教程:构建模型之顺序模型Sequential》用到自己的任务里,可以先缩小场景,只验证一个最关键的判断点。
小结
在这一节中,我们详细介绍了如何使用Keras的顺序模型(Sequential)构建一个简单的手写数字识别模型。从数据的加载、预处理,到模型的创建、编译和训练,我们逐步完成了整个过程。顺序模型对于初学者来说是一个非常友好的工具,它可以快速构建和训练简单的神经网络。
在下一篇文章中,我们将探讨Keras的功能API,它提供了更灵活的方式来构建复杂的模型。敬请期待!
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
Keras框架从零教程:构建模型之顺序模型Sequential适合谁读?
这是 Keras 入门 系列第 10 / 28 篇,适合正在学习Keras 入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇Keras 入门教程要多久?
按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读