基于ResNet18深度学习网络的mnist手写数字数据库识别matlab仿真

简介: 基于ResNet18深度学习网络的mnist手写数字数据库识别matlab仿真

1.算法仿真效果
matlab2022a仿真结果如下:

1.png
2.png
3.png

2.算法涉及理论知识概要
ResNet系列网络,图像分类领域的知名算法,经久不衰,历久弥新,直到今天依旧具有广泛的研究意义和应用场景。被业界各种改进,经常用于图像识别任务。ResNet-18,数字代表的是网络的深度,也就是说ResNet18 网络就是18层的吗?实则不然,其实这里的18指定的是带有权重的 18层,包括卷积层和全连接层,不包括池化层和BN层。图像分类(Image Classification)是计算机视觉中的一个基础任务,将图像的语义将不同图像划分到不同类别。很多任务也可以转换为图像分类任务。比如人脸检测就是判断一个区域内是否有人脸,可以看作一个二分类的图像分类任务。

    ResNet18的基本含义是,网络的基本架构是ResNet,网络的深度是18层。但是这里的网络深度指的是网络的权重层,也就是包括池化,激活,线性层。而不包括批量化归一层,池化层。下图就是一个ResNet18的基本网络架构,其中并未加入批量化归一和池化层。

(1)7*7卷积层
首先根据论文中所说的首先经过一个卷积层。这个卷积层的卷积核的大小为77,步长为2,padding为3,输出通道为64。

(2)池化层
这里通过一个最大池化层,这一层的卷积核的大小是33,步长为2,padding为1。最后输出数据的大小为6456*56.也就是说这个池化不改变数据的通道数量,而会减半数据的大小。

(3)第一个3*3卷积层
第一个卷积33卷积层,卷积核的大小为33,步长为1,padding为1。最后通过两个第一个卷积层的输出数据大小为645454,也就是这一层不改变数据的大小和通道数。

(4)第二个33卷积层
首先通过一个11的卷积层,并经过一个下采样。这样最后的输出数据为12828
28。也就是将输出通道翻倍,输出数据大小全部减半。

(5)第三个33卷积层
同样进行11卷积,和下采样。这样最后的输出为25614
14。也就是将输出通道翻倍,输出数据大小全部减半。

(6)第四个3*3卷积层
是将输出通道翻倍,输出数据大小全部减半。

(7)平均池化层
最后输出为51211

(8)线性层

3.MATLAB核心程序
```tempLayers = [
additionLayer(2,"Name","res5b")
reluLayer("Name","res5b_relu")
globalAveragePooling2dLayer("Name","pool5")
fullyConnectedLayer(10,"Name","fc10")
softmaxLayer("Name","prob")
classificationLayer("Name","ClassificationLayer_predictions")];
LG = addLayers(LG,tempLayers);

% clean up helper variable
clear tempLayers;

LG = connectLayers(LG,"pool1","res2a_branch2a");
LG = connectLayers(LG,"pool1","res2a/in2");
LG = connectLayers(LG,"bn2a_branch2b","res2a/in1");
LG = connectLayers(LG,"res2a_relu","res2b_branch2a");
LG = connectLayers(LG,"res2a_relu","res2b/in2");
LG = connectLayers(LG,"bn2b_branch2b","res2b/in1");
LG = connectLayers(LG,"res2b_relu","res3a_branch2a");
LG = connectLayers(LG,"res2b_relu","res3a_branch1");
LG = connectLayers(LG,"bn3a_branch1","res3a/in2");
LG = connectLayers(LG,"bn3a_branch2b","res3a/in1");
LG = connectLayers(LG,"res3a_relu","res3b_branch2a");
LG = connectLayers(LG,"res3a_relu","res3b/in2");
LG = connectLayers(LG,"bn3b_branch2b","res3b/in1");
LG = connectLayers(LG,"res3b_relu","res4a_branch2a");
LG = connectLayers(LG,"res3b_relu","res4a_branch1");
LG = connectLayers(LG,"bn4a_branch1","res4a/in2");
LG = connectLayers(LG,"bn4a_branch2b","res4a/in1");
LG = connectLayers(LG,"res4a_relu","res4b_branch2a");
LG = connectLayers(LG,"res4a_relu","res4b/in2");
LG = connectLayers(LG,"bn4b_branch2b","res4b/in1");
LG = connectLayers(LG,"res4b_relu","res5a_branch2a");
LG = connectLayers(LG,"res4b_relu","res5a_branch1");
LG = connectLayers(LG,"bn5a_branch1","res5a/in2");
LG = connectLayers(LG,"bn5a_branch2b","res5a/in1");
LG = connectLayers(LG,"res5a_relu","res5b_branch2a");
LG = connectLayers(LG,"res5a_relu","res5b/in2");
LG = connectLayers(LG,"bn5b_branch2b","res5b/in1");

net = trainNetwork(XTrain, YTrainCat, LG, options);

save Res18.mat net
```

相关文章
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于BP神经网络的苦瓜生长含水量预测模型matlab仿真
本项目展示了基于BP神经网络的苦瓜生长含水量预测模型,通过温度(T)、风速(v)、模型厚度(h)等输入特征,预测苦瓜的含水量。采用Matlab2022a开发,核心代码附带中文注释及操作视频。模型利用BP神经网络的非线性映射能力,对试验数据进行训练,实现对未知样本含水量变化规律的预测,为干燥过程的理论研究提供支持。
|
3月前
|
缓存 算法 物联网
基于AODV和leach协议的自组网络平台matlab仿真,对比吞吐量,负荷,丢包率,剩余节点个数,节点消耗能量
本系统基于MATLAB 2017b,对AODV与LEACH自组网进行了升级仿真,新增运动节点路由测试,修正丢包率统计。AODV是一种按需路由协议,结合DSDV和DSR,支持动态路由。程序包含参数设置、消息收发等功能模块,通过GUI界面配置节点数量、仿真时间和路由协议等参数,并计算网络性能指标。 该代码实现了节点能量管理、簇头选举、路由发现等功能,并统计了网络性能指标。
167 73
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
2月前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了基于分组卷积神经网络(GroupCNN)和灰狼优化(GWO)的时间序列回归预测算法。算法运行效果良好,无水印展示。使用Matlab2022a开发,提供完整代码及详细中文注释。GroupCNN通过分组卷积减少计算成本,GWO则优化超参数,提高预测性能。项目包含操作步骤视频,方便用户快速上手。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种基于WOA优化的GroupCNN分组卷积网络时间序列预测算法。使用Matlab2022a开发,提供无水印运行效果预览及核心代码(含中文注释)。算法通过WOA优化网络结构与超参数,结合分组卷积技术,有效提升预测精度与效率。分组卷积减少了计算成本,而WOA则模拟鲸鱼捕食行为进行优化,适用于多种连续优化问题。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
该算法结合了遗传算法(GA)与分组卷积神经网络(GroupCNN),利用GA优化GroupCNN的网络结构和超参数,提升时间序列预测精度与效率。遗传算法通过模拟自然选择过程中的选择、交叉和变异操作寻找最优解;分组卷积则有效减少了计算成本和参数数量。本项目使用MATLAB2022A实现,并提供完整代码及视频教程。注意:展示图含水印,完整程序运行无水印。
|
2月前
|
机器学习/深度学习 传感器 安全
基于模糊神经网络的移动机器人路径规划matlab仿真
该程序利用模糊神经网络实现移动机器人的路径规划,能在含5至7个静态未知障碍物的环境中随机导航。机器人配备传感器检测前方及其两侧45度方向上的障碍物距离,并根据这些数据调整其速度和方向。MATLAB2022a版本下,通过模糊逻辑处理传感器信息,生成合理的路径,确保机器人安全到达目标位置。以下是该程序在MATLAB2022a下的测试结果展示。
|
2月前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种结合粒子群优化(PSO)与分组卷积神经网络(GroupCNN)的时间序列预测算法。该算法通过PSO寻找最优网络结构和超参数,提高预测准确性与效率。软件基于MATLAB 2022a,提供完整代码及详细中文注释,并附带操作步骤视频。分组卷积有效降低了计算成本,而PSO则智能调整网络参数。此方法特别适用于金融市场预测和天气预报等场景。