郭震 AI公众号:郭震AI

23 在TensorFlow中使用Keras

发布日期:

最近更新:

分类: Keras

预计阅读: 3 分钟

阅读次数: 0

预计阅读3 分钟
结构重点7 个
图文要点6 张
正文规模1.4k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

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

阅读路线

先按这条路线读

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

图文要点

先看本文图文节点

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

在 TensorFlow 中使用 Keras流程图查看大图
在 TensorFlow 中使用 Keras流程图

在 TensorFlow 中使用 Keras,重点是把高级建模接口和底层数据、设备、保存部署能力接起来。

在 TensorFlow 中使用 Keras实操核对图查看大图
在 TensorFlow 中使用 Keras实操核对图

我会确认代码使用的是同一套 tf.keras 入口。混用旧式导入时,版本兼容问题会更难查。

在前面的文章中,我们探讨了如何进行Keras的Fine-tuning以优化预训练模型的性能。本篇将重点讲解如何在TensorFlow中使用Keras,从基础的模型构建到训练以及评估,确保大家能够顺利过渡到使用Keras框架中实际应用的场景。

Keras与TensorFlow的接口

Keras是一个高层神经网络API,它可以运行在多种深度学习框架上,其中最流行的实现就是TensorFlow。TensorFlow自2.0版本以来,将Keras集成成为其高级API,简化了模型构建与训练的流程。

在TensorFlow中使用Keras要点判断卡查看大图
在TensorFlow中使用Keras要点判断卡

读这篇时,可以把「Keras与Tens -> 构建一个简单的顺序模 -> 编译模型 -> 训练模型」当成一条检查线:先看对象、路径和证据,再回到案例、代码或指标里复查。

在此大背景下,TensorFlow中的Keras可以通过以下几种方式构建模型:

  1. 顺序模型(Sequential):适用于单一输入层和输出层的线性堆叠。
  2. 函数式API(Functional API):允许创建复杂的模型,例如多输入,输出,或共享层。
  3. 子类化(Subclassing):允许用户自定义层和模型,提供了更高的灵活性。

我们将使用顺序模型来演示如何在TensorFlow中构建一个简单的神经网络。

构建一个简单的顺序模型

以下代码展示了如何使用Keras在TensorFlow中定义一个简单的多层感知机(MLP)来进行分类任务。

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

# 设置随机种子以确保可重复性
tf.random.set_seed(42)

# 创建顺序模型
model = models.Sequential([
    layers.Input(shape=(784,)),  # 输入层,假设输入特征为784维
    layers.Dense(128, activation='relu'),  # 隐藏层,128个神经元
    layers.Dense(10, activation='softmax')  # 输出层,10类分类
])

# 查看模型摘要
model.summary()

编译模型

编译模型是准备好训练的关键步骤。在这个阶段,我们需要指定优化器、损失函数和评估指标。

model.compile(optimizer='adam',  # 使用Adam优化器
              loss='sparse_categorical_crossentropy',  # 使用稀疏分类交叉熵作为损失函数
              metrics=['accuracy'])  # 评估指标为准确率

训练模型

接下来,我们可以使用训练数据来训练该模型。需要注意的是,在训练之前,确保数据已经被归一化处理,并且分成了训练集和验证集。

# 假设加载并预处理了数据
# train_images, train_labels, val_images, val_labels 为预处理好的数据
history = model.fit(train_images, train_labels, epochs=10, batch_size=32, 
                    validation_data=(val_images, val_labels))

评估模型

训练完成后,我们需要评估该模型在测试集上的表现。

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

高级用法 - 使用函数式API

尽管顺序模型非常简洁,但在面对更复杂的情况时,比如需要多个输入层的情况,我们可能需要借助“函数式API”。下面是一个使用函数式API构建具有两个输入的模型的示例。

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

看完《在TensorFlow中使用Keras》后,建议用一分钟复盘:关键概念是否分清、练习步骤是否可复现、结论能不能换成自己的话。

# 定义输入层
input1 = layers.Input(shape=(784,))
input2 = layers.Input(shape=(784,))

# 第一个共享层
shared_layer = layers.Dense(128, activation='relu')

# 应用共享层
output1 = shared_layer(input1)
output2 = shared_layer(input2)

# 定义输出层
output = layers.Dense(10, activation='softmax')(output1)

# 创建模型
model = models.Model(inputs=[input1, input2], outputs=output)

# 编译模型
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
在TensorFlow中使用Keras应用复盘卡查看大图
在TensorFlow中使用Keras应用复盘卡

如果《在TensorFlow中使用Keras》还没完全消化,可以从这张卡片的四个动作重新走一遍。

在TensorFlow中使用Keras应用检查卡查看大图
在TensorFlow中使用Keras应用检查卡

回看《在TensorFlow中使用Keras》时,不必一次做大项目,先用一条简单样例确认主线是否清楚。

总结

本文通过案例详细讲解了如何在TensorFlow中使用Keras进行基本的模型构建、训练及评估。我们不仅通过简洁的顺序模型展示了基本的用法,还引入了更复杂的函数式API,为那些需要实现复杂结构的用户提供了灵活性。

接下来,在下一篇文章中,我们将深入讨论如何使用TensorBoard对Keras模型进行可视化,这将有助于我们更好地理解模型训练过程及其性能。

通过这样的方式,希望能帮助大家更好地掌握Keras与TensorFlow的结合,进而进行更复杂的深度学习项目。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

在TensorFlow中使用Keras适合谁读?

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

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

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

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

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

分享文章

转发到常用平台

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

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

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

最多 800 字

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

0/800

留言列表

0
正在加载留言...