郭震 AI公众号:郭震AI

26 Keras框架在图像分类中的应用

发布日期:

最近更新:

分类: Keras

预计阅读: 3 分钟

阅读次数: 0

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

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

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

阅读路线

先按这条路线读

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

图文要点

先看本文图文节点

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

图像分类应用流程图查看大图
图像分类应用流程图

图像分类项目要从数据目录和预处理开始。模型结构重要,但数据增强、归一化和错例分析同样决定结果。

图像分类应用实操核对图查看大图
图像分类应用实操核对图

我会先检查每个类别的样本数和图片质量。数据分布不清楚,模型指标很容易误导人。

在上一篇中,我们讨论了如何使用Keras和TensorFlow进行设备管理,以优化深度学习模型的训练。在本篇中,我们将深入探讨Keras在实际项目中的应用,特别是图像分类问题。接下来,我们将通过一个具体的案例来演示如何使用Keras构建、训练和评估一个图像分类模型。

图像分类问题概述

图像分类是计算机视觉中的基础任务,目标是将输入图像归类到预定义的类别中。例如,我们希望将图片分类为,或根据不同种类的花进行分类。深度学习,尤其是卷积神经网络(CNN),在图像分类中表现出色。

案例:使用Keras进行猫和狗的分类

接下来,我们将通过一个实际的案例来实现图像分类。我们将使用包含猫和狗图像的数据集,该数据集可以在Kaggle上找到。我们的任务是构建一个CNN模型来分类这些图像。

1. 环境准备

确保你已经安装了Keras和TensorFlow:

pip install tensorflow keras

2. 导入必要的库

import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.preprocessing.image import ImageDataGenerator
import matplotlib.pyplot as plt

3. 数据准备

首先,我们需要加载和预处理数据。假设我们有一个训练集和一个验证集,存放在以下目录中:

dataset/
    train/
        cats/
        dogs/
    validation/
        cats/
        dogs/

我们可以使用ImageDataGenerator来处理数据,进行数据增强和归一化。

train_datagen = ImageDataGenerator(
    rescale=1.0/255,
    rotation_range=40,
    width_shift_range=0.2,
    height_shift_range=0.2,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    fill_mode='nearest'
)

validation_datagen = ImageDataGenerator(rescale=1.0/255)

train_generator = train_datagen.flow_from_directory(
    'dataset/train',
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary'
)

validation_generator = validation_datagen.flow_from_directory(
    'dataset/validation',
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary'
)

4. 构建模型

我们将构建一个简单的卷积神经网络(CNN),如下所示:

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)))
model.add(layers.MaxPooling2D(2, 2))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D(2, 2))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D(2, 2))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))

5. 编译模型

在编译模型时,我们需要指定优化器和损失函数:

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

6. 训练模型

现在我们可以使用训练生成器开始训练模型了:

Keras框架在图像分类中的应用要点判断卡查看大图
Keras框架在图像分类中的应用要点判断卡

读这篇时,可以把「图像分类问题概述 -> 案例:使用Keras -> 环境准备 -> 导入必要的库」当成一条检查线:先看对象、路径和证据,再回到案例、代码或指标里复查。

history = model.fit(
    train_generator,
    steps_per_epoch=100,  # 根据数据集的大小进行调整
    epochs=20,
    validation_data=validation_generator,
    validation_steps=50  # 根据数据集的大小进行调整
)

7. 评估模型

训练完成后,我们可以评估模型的表现,并绘制训练和验证的准确度曲线:

# 绘制训练过程中的准确度变化
acc = history.history['accuracy']
val_acc = history.history['val_accuracy']
epochs = range(len(acc))

plt.plot(epochs, acc, 'r', label='Training accuracy')
plt.plot(epochs, val_acc, 'b', label='Validation accuracy')
plt.title('Training and validation accuracy')
plt.legend()
plt.show()

8. 模型保存与应用

最后,我们可以将训练好的模型保存,并用于新的图片分类。

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

学习《Keras框架在图像分类中的应用》不必一口气吃完所有细节。先挑一个能动手验证的小问题,再顺着图和正文补齐概念。

model.save('cats_vs_dogs.h5')

加载模型进行预测:

from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing import image
import numpy as np

model = load_model('cats_vs_dogs.h5')

img_path = 'path_to_new_image.jpg'  # 替换为你的图片路径
img = image.load_img(img_path, target_size=(150, 150))
img_array = image.img_to_array(img)
img_array = np.expand_dims(img_array, axis=0) / 255.0

predictions = model.predict(img_array)
print('Predicted class: Cats' if predictions[0] > 0.5 else 'Predicted class: Dogs')
Keras框架在图像分类中的应用应用复盘卡查看大图
Keras框架在图像分类中的应用应用复盘卡

学完《Keras框架在图像分类中的应用》后,不妨换一个自己的场景试一次,重点观察输入、处理和输出是否能对应起来。

Keras框架在图像分类中的应用应用检查卡查看大图
Keras框架在图像分类中的应用应用检查卡

如果想把《Keras框架在图像分类中的应用》用到自己的任务里,可以先缩小场景,只验证一个最关键的判断点。

总结

在本篇教程中,我们探讨了如何使用Keras构建一个简单的图像分类模型,并应用于猫和狗的分类任务。通过这个案例,我们可以看到Keras的强大和简便,在实际项目中能够快速实现深度学习模型的构建和应用。接下来,我们将在下篇中讨论Keras在自然语言处理中的应用,继续深入探索Keras框架的多种可能性。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

Keras框架在图像分类中的应用适合谁读?

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

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

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

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

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

分享文章

转发到常用平台

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

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

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

最多 800 字

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

0/800

留言列表

0
正在加载留言...