news 2026/5/25 21:42:47

深度学习:5层CNN实现图片分类(MATLAB版)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习:5层CNN实现图片分类(MATLAB版)

深度学习 5层CNN代码实现图片分类 训练集共有9个文件夹代表9类,每类有50张图片,可根据需要自行准备训练集 MATLAB代码,代码注释清楚,容易上手 温馨提示:联系请考虑是否需要,(Example_7)

在深度学习领域,卷积神经网络(CNN)是图片分类任务中极为常用且强大的模型。今天咱就用MATLAB来实现一个5层CNN做图片分类,数据集有9个类别,每个类别50张图片。

准备训练集

首先,我们得准备好数据。假设这9个文件夹都在一个名为data的主文件夹下。

dataDir = 'data'; imageDir = imageDatastore(dataDir, 'IncludeSubfolders', true, 'LabelSource', 'foldernames');

这段代码使用imageDatastore函数创建了一个图像数据存储对象imageDirIncludeSubfolders设置为true意味着它会递归搜索子文件夹,LabelSource设置为foldernames则表示文件夹名就是图片的类别标签。

构建5层CNN网络

下面开始搭建5层的CNN网络结构。

layers = [ imageInputLayer([224 224 3]) convolution2dLayer(3,16,'Padding','same') batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,32,'Padding','same') batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,64,'Padding','same') batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,128,'Padding','same') batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(9) softmaxLayer classificationLayer];

imageInputLayer([224 224 3])指定了输入图像的大小为224x224像素,且是RGB三通道图像。

convolution2dLayer(3,16,'Padding','same')表示一个卷积层,卷积核大小为3x3,输出16个特征图,Padding设置为same保证卷积后的特征图大小与输入相同。

batchNormalizationLayer用于批量归一化,加速网络收敛。reluLayer是激活函数层,采用ReLU函数引入非线性。

深度学习 5层CNN代码实现图片分类 训练集共有9个文件夹代表9类,每类有50张图片,可根据需要自行准备训练集 MATLAB代码,代码注释清楚,容易上手 温馨提示:联系请考虑是否需要,(Example_7)

maxPooling2dLayer(2,'Stride',2)进行最大池化操作,池化核大小为2x2,步长为2,起到降采样的作用。

fullyConnectedLayer(9)是全连接层,因为我们有9个类别,所以输出维度为9。softmaxLayer将全连接层的输出转换为概率分布,classificationLayer定义了分类任务的损失函数。

训练模型

接下来训练我们构建好的网络。

options = trainingOptions('adam',... 'InitialLearnRate',0.001,... 'MaxEpochs',50,... 'MiniBatchSize',32,... 'Shuffle','every-epoch',... 'ValidationData',imageDir,... 'ValidationFrequency',3,... 'Verbose',false,... 'Plots','training-progress'); net = trainNetwork(imageDir,layers,options);

trainingOptions设置了训练的各项参数。这里使用adam优化器,初始学习率为0.001,最大训练轮数为50,每批训练样本数为32。Shuffle设置为every-epoch,表示每轮训练前打乱数据顺序。ValidationData指定验证集,ValidationFrequency表示每3轮进行一次验证。Verbose设为false关闭详细输出,Plots设为training - progress会绘制训练进度图。

最后通过trainNetwork函数使用训练集数据imageDir和定义好的网络层layers,按照设置的训练选项options来训练网络,得到训练好的模型net

通过以上步骤,我们就用MATLAB实现了一个5层CNN的图片分类模型。希望这篇博文能帮助你快速上手深度学习中的图片分类任务。如果在实践过程中有任何问题,欢迎一起探讨。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 22:47:09

GDPR下的测试日志管理:构建合规高效的自动化防护体系

在持续交付管道中,测试日志如同数字世界的“ forensic 痕迹”,既承载着缺陷定位的关键线索,又潜藏着用户隐私泄露的高危风险。当欧盟用户数据流过测试环境时,GDPR第32条“处理安全性”要求如同悬顶之剑——测试团队必须证明&#…

作者头像 李华
网站建设 2026/5/22 15:18:41

2026年ChatGPT写的论文怎么去AIGC痕迹?3招轻松搞定

2026年ChatGPT写的论文怎么去AIGC痕迹?3招轻松搞定 ChatGPT是用得最多的AI写作工具,但也是AI痕迹最重的。 我室友用GPT-4写了一篇论文,一测AI率82%。比国产AI工具生成的内容还高。 为什么?因为各大检测平台的训练数据里&#x…

作者头像 李华
网站建设 2026/5/21 4:54:30

# [大模型实战 05] 大模型实战的杀手锏: 模型微调

[大模型实战 05] 大模型实战的杀手锏: 模型微调核心摘要 (TL;DR) 实操验证:通过 Kaggle 代码亲自运行对比,揭示 Base 模型(“续写怪”)与 Instruct 模型(“对话助手”)的本质差异。原理揭秘&…

作者头像 李华
网站建设 2026/5/22 12:45:37

可信 AI 实战:基于 CANN `secure-ai-runtime` 的模型加密与安全推理

可信 AI 实战:基于 CANN secure-ai-runtime 的模型加密与安全推理 cann组织链接:https://atomgit.com/cann ops-nn仓库链接:https://atomgit.com/cann/ops-nn 一、为什么 AI 系统需要安全加固? 随着 AI 模型成为企业核心资产&a…

作者头像 李华
网站建设 2026/5/22 17:11:19

CANN-LLM:基于昇腾 CANN 的高性能、全功能 LLM 推理引擎

在上一篇中,我们实现了 毫秒级请求取消机制,使系统具备了生产级的鲁棒性。现在,我们将整合前六篇的所有技术成果,构建一个完整的、可开源的 LLM 推理服务项目模板,命名为: CANN-LLM:基于昇腾 CA…

作者头像 李华
网站建设 2026/5/21 11:30:08

基于Matlab的热成像图像处理系统

- 标题:基于matlab的热成像图像处理系统 - 关键词:matlab GUI界面 数字图像处理 椒盐噪声 高斯噪声 乘性噪声 均值滤波 中值滤波 高通滤波 灰度化 温度异常检测 设置温度阈值 - 步骤:打开图像 选择模糊算法 选择还原算法 对模糊的图像进行还原…

作者头像 李华