基于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
```

相关文章
|
3天前
|
机器学习/深度学习 存储 算法
m基于Yolov2深度学习网络的螺丝检测系统matlab仿真,带GUI界面
MATLAB 2022a中展示了YOLOv2算法的螺丝检测仿真结果,该系统基于深度学习的YOLOv2网络,有效检测和定位图像中的螺丝。YOLOv2通过批标准化、高分辨率分类器等优化实现速度和精度提升。核心代码部分涉及设置训练和测试数据,调整图像大小,加载预训练模型,构建YOLOv2网络并进行训练,最终保存检测器模型。
20 3
|
4天前
|
机器学习/深度学习 算法 数据可视化
基于深度学习网络的鞋子种类识别matlab仿真
使用GoogLeNet深度学习模型在matlab2022a中进行鞋子种类识别,利用Inception模块捕捉多尺度特征,提升分类精度。程序加载预训练模型`gnet.mat`,计算验证集的准确性并随机显示32个样本的预测结果及置信度。
|
5天前
|
机器学习/深度学习 算法
基于深度学习网络的十二生肖图像分类matlab仿真
该内容是关于使用GoogLeNet算法进行十二生肖图像分类的总结。在MATLAB2022a环境下,GoogLeNet通过Inception模块学习高层语义特征,处理不同尺寸的输入。核心程序展示了验证集上部分图像的预测标签和置信度,以4x4网格显示16张图像,每张附带预测类别和概率。
|
7天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
8天前
|
关系型数据库 MySQL 数据库
Docker数据库Mysql
Docker数据库Mysql
|
8天前
|
存储 SQL 关系型数据库
mysql查询数据库表大小怎么操作
mysql查询数据库表大小怎么操作
|
9天前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。
|
9天前
|
关系型数据库 MySQL 数据库
【MySQL】:数据库事务管理
【MySQL】:数据库事务管理
23 0