11 深度学习框架之Keras
系列进度
深度学习入门 · 第 11 / 24 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
Keras 适合用来快速理解深度学习流程。它把模型结构、损失函数、优化器和训练过程组织得比较清楚,适合从概念过渡到代码。
用 Keras 练习时,可以从修改层数、隐藏单元数和学习率开始,每次只改一个变量,看结果怎么变。
在上一篇文章中,我们介绍了深度学习框架之一的TensorFlow。在本篇教程中,我们将聚焦于Keras,一个基于Python的深度学习框架,它可以与TensorFlow无缝集成并提供更高级别的API,适合快速构建和训练深度学习模型。接下来,我们将通过案例和代码,探索Keras的基本用法。
Keras简介
Keras是一个高层深度学习API,旨在使构建神经网络变得简单、易于扩展并具可维护性。Keras支持多种后端,如TensorFlow、Theano和CNTK,但自从TensorFlow 2.0发布以来,Keras已成为TensorFlow的一部分,通常通过tf.keras来使用。
学习 Keras 框架时,先看模型定义、层组合、编译配置、训练调用和指标输出。
Keras的优点
- 简易性:Keras提供直观的API,可以通过更少的代码实现复杂的神经网络模型。
- 模块化:你可以自由组合网络层、损失函数、优化器等,支持更加灵活的模型设计。
- 社区支持:作为一个广泛使用的库,Keras有强大的用户社区和丰富的文档资源。
Keras基本组件
在使用Keras构建深度学习模型时,你需要了解以下基本组件:
《深度学习框架之Keras》适合边看图边读正文。先确认问题和判断标准,再看概念解释与练习步骤,信息会更容易连成一条线。
- 模型:Keras提供了两种主要的模型类型:
Sequential模型和Functional模型。 - 层:模型由多个层(
Layers)组成,每一层执行特定的功能,例如卷积、池化、全连接等。 - 损失函数:用于评估模型的输出与真实值之间的差距。
- 优化器:用于更新模型参数以减少损失函数的值。
- 评估指标:用于监测模型性能的指标。
Keras使用示例
下面我们将通过一个简单的例子来演示如何使用Keras构建一个分类模型。假设我们要使用手写数字数据集MNIST来训练一个神经网络用于数字分类。
1. 数据准备
首先,我们需要加载MNIST数据集,并对数据进行预处理。
import numpy as np
from keras.datasets import mnist
from keras.utils import to_categorical
# 加载数据集
(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
# 改变数据形状
x_train = np.expand_dims(x_train, -1)
x_test = np.expand_dims(x_test, -1)
# 将标签进行独热编码
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)
2. 构建模型
我们使用Sequential模型来构建一个简单的全连接神经网络。
from keras.models import Sequential
from keras.layers import Flatten, Dense
# 创建Sequential模型
model = Sequential()
model.add(Flatten(input_shape=(28, 28, 1))) # 输入层
model.add(Dense(128, activation='relu')) # 隐藏层
model.add(Dense(10, activation='softmax')) # 输出层
3. 编译模型
在训练之前,我们需要编译模型,指定损失函数、优化器和评估指标。
model.compile(loss='categorical_crossentropy', # 使用类别交叉熵作为损失函数
optimizer='adam', # 使用Adam优化器
metrics=['accuracy']) # 监测准确率
4. 训练模型
接下来,我们使用fit方法来训练模型。
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_split=0.2)
5. 评估模型
模型训练完成后,可以在测试数据集上评估模型的性能。
loss, accuracy = model.evaluate(x_test, y_test)
print(f'Test loss: {loss:.4f}, Test accuracy: {accuracy:.4f}')
如果《深度学习框架之Keras》还没完全消化,可以从这张卡片的四个动作重新走一遍。
回看《深度学习框架之Keras》时,不必一次做大项目,先用一条简单样例确认主线是否清楚。
小结
在本教程中,我们介绍了Keras的基本概念及其组件,并通过MNIST手写数字识别的示例详细展示了如何构建、编译、训练及评估一个简单的神经网络模型。Keras的简易性和灵活性使得深度学习变得更加高效和便捷。
接下来,我们将在下一篇文章中讨论另一个流行的深度学习框架——PyTorch。请保持关注!
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
深度学习框架之Keras适合谁读?
这是 深度学习入门 系列第 11 / 24 篇,适合正在学习深度学习入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇深度学习入门教程要多久?
按中文技术文章阅读速度估算,通读大约 3 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读