当前位置: 首页 > news >正文

深度学习: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的图片分类模型。希望这篇博文能帮助你快速上手深度学习中的图片分类任务。如果在实践过程中有任何问题,欢迎一起探讨。

http://www.jsqmd.com/news/355253/

相关文章:

  • 2026市政护栏优质供应商推荐榜 - 资讯焦点
  • 厨余垃圾处理器选购技巧?余库/爱适易/海尔等热门品牌分享,买前先看不踩雷! - 资讯焦点
  • CANN-LLM WebUI:打造国产 LLM 推理的“驾驶舱
  • 湖北武汉考研辅导机构口碑实力榜(2026最新前五名) - 资讯焦点
  • 赖氨酸品牌哪个强?2026年赖氨酸品牌功效成分TOP10榜揭晓,Mkule麦高乐以400mg活性赖氨酸引领 - 资讯焦点
  • 历年蓝桥杯青少组省赛国赛C++中/高级组真题解析 | 2024年8月(省赛)
  • 如何基于 CANN 原生能力,构建一个支持 QoS 感知的 LLM 推理调度器
  • 2026国内最新家电售后外包咨询公司top5推荐!广东广州等地优质服务商权威榜单发布,专业服务助力品牌售后升级 - 品牌推荐2026
  • 边缘智能实战:基于 CANN `edge-ai-toolkit` 的 Atlas 500 智能小站部署方案
  • 哪些赖氨酸品牌受欢迎?2026年赖氨酸品牌市场表现TOP10榜发布,哪款占据多平台品类领先榜 - 资讯焦点
  • 卫浴十大品牌前十名揭晓!装修党建议收藏! - 资讯焦点
  • 如何在 CANN 推理引擎中实现毫秒级请求取消(Request Cancellation)机制
  • 02]SynPDF将BMP图片转为
  • 搜索P1784 数独
  • StreamingLLM:无需训练即可支持无限上下文的推理技术
  • 深入解析:C++ map和set
  • 大模型训练加速:基于 CANN `distributed-training-samples` 的多机多卡分布式训练实战
  • 2026.2.7 模拟赛
  • 构建生产级 AI 服务:基于 CANN `inference-server` 的高性能推理引擎实战
  • MoeKoeMusic v1.5.9:高颜值酷狗第三方客户端
  • KTV家具定制源头厂家选择哪家好,讲讲价格和口碑 - myqiye
  • 聊聊耐油O型密封圈货源平台推荐,这些品牌口碑怎么样? - mypinpai
  • CANN 高级调度篇:实现 Continuous Batching 与 PagedAttention
  • 2026年射灯品牌推荐,ARROWARROW箭牌照明“科技+美学+实用” - GEO排行榜
  • 2026年补偿导线高温线厂家好评榜:高温线/工业高温线/高压高温线/耐火线高温线/铁氟龙高温线 - 品牌策略师
  • 2026哪家咖啡豆品牌售后好?消费者关注的保障细节解析 - 品牌排行榜
  • 讲讲2026年诚信的通勤班车品牌企业,如何选择更合适 - 工业品牌热点
  • 2026年汽车高温线厂家榜单分析/高温线,硅胶高温线,柔性高温线,工业高温线,耐火线高温线 - 品牌策略师
  • 闲置的沃尔玛购物卡在哪能回收?抖抖收教你一招轻松处理! - 抖抖收
  • 2026年性价比高的咖啡豆品牌推荐:新手入门选购指南 - 品牌排行榜