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

相关文章
|
4天前
|
算法
基于GA遗传优化的离散交通网络双层规划模型设计matlab仿真
该程序基于GA遗传优化设计了离散交通网络的双层规划模型,以路段收费情况的优化为核心,并通过一氧化碳排放量评估环境影响。在MATLAB2022a版本中进行了验证,显示了系统总出行时间和区域排放最小化的过程。上层模型采用多目标优化策略,下层则确保总阻抗最小,实现整体最优解。
|
11天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的USB摄像头实时视频采集与水果识别matlab仿真
本项目展示了使用MATLAB 2022a和USB摄像头识别显示器上不同水果图片的算法。通过预览图可见其准确识别效果,完整程序无水印。项目采用GoogleNet(Inception-v1)深度卷积神经网络,利用Inception模块捕捉多尺度特征。代码含详细中文注释及操作视频,便于理解和使用。
|
8天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)入门
【8月更文挑战第31天】在人工智能的璀璨星空中,卷积神经网络(CNN)如同一颗耀眼的星辰,以其卓越的图像处理能力在深度学习领域熠熠生辉。本文将带你领略CNN的魅力,从其结构原理到实战应用,深入浅出地探索这一技术的奥秘。我们将通过Python代码片段,一起实现一个简单的CNN模型,并讨论其在现实世界问题中的应用潜力。无论你是初学者还是有一定基础的开发者,这篇文章都将为你打开一扇通往深度学习世界的大门。
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)入门
【8月更文挑战第31天】在人工智能的浪潮中,深度学习以其强大的数据处理能力成为时代的宠儿。本文将引导你走进深度学习的核心组件之一——卷积神经网络(CNN),并带你一探其背后的奥秘。通过简明的语言和直观的代码示例,我们将一起构建一个简易的CNN模型,理解它在图像处理领域的应用,并探索如何利用Python和TensorFlow实现它。无论你是初学者还是有一定基础的开发者,这篇文章都将为你打开一扇通往深度学习世界的大门。
|
8天前
|
机器学习/深度学习 自动驾驶 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【8月更文挑战第31天】 本文旨在通过浅显易懂的方式,引导初学者步入卷积神经网络(CNN)的神秘世界。我们将从CNN的基础概念出发,逐步深入到其在图像处理中的应用实例,最后通过一个简单的Python代码示例,展示如何实现一个基础的CNN模型。无论你是编程新手还是深度学习领域的初探者,这篇文章都将为你打开一扇了解和掌握CNN的大门。
|
8天前
|
机器学习/深度学习 人工智能 算法
深度学习中的卷积神经网络(CNN)入门
【8月更文挑战第31天】 在探索人工智能的奥秘时,我们常常被其背后的复杂算法所迷惑。本文旨在以浅显易懂的语言,带你走进深度学习的世界,特别是卷积神经网络(CNN)这一核心概念。我们将一起了解CNN的基本结构,它是如何工作的,以及为什么它在图像识别领域如此强大。通过简单的代码示例,你将学会如何搭建一个简单的CNN模型,并在自己的数据集上进行实验。无论你是编程新手还是深度学习初学者,这篇文章都将为你打开一扇通往高级人工智能应用的大门。
|
8天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)原理与实践
【8月更文挑战第31天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力脱颖而出。本文将深入浅出地探讨卷积神经网络(CNN)这一核心组件,解析其在图像识别等领域的应用原理,并通过Python代码示例带领读者步入实践。我们将从CNN的基本概念出发,逐步深入到架构设计,最后通过一个简易项目展示如何将理论应用于实际问题解决。无论你是深度学习的初学者还是希望深化理解的实践者,这篇文章都将为你提供有价值的洞见和指导。
|
8天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)入门指南
【8月更文挑战第31天】本文旨在通过简明的语言和直观的代码示例,引导初学者理解并实践卷积神经网络(CNN)的基础概念。我们将从CNN的基本结构出发,逐步深入到构建一个简单的CNN模型,并在流行的深度学习框架TensorFlow中实现它。文章将用通俗易懂的方式解释复杂的技术概念,帮助读者建立起对CNN工作原理的初步认识,同时提供足够的信息以鼓励进一步的探索和学习。
|
9天前
|
机器学习/深度学习 安全 网络安全
深度学习在图像识别中的应用与挑战网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【8月更文挑战第30天】深度学习技术,尤其是卷积神经网络(CNN)在图像识别领域取得了显著成就。本文将介绍深度学习如何革新了图像处理领域,包括其在医学诊断、自动驾驶和安全监控等方面的应用。同时,我们也将探讨当前面临的挑战,如模型的泛化能力、数据集偏差和计算资源需求等问题。通过深入浅出的解释和实例展示,本文旨在为读者提供一个关于深度学习在图像识别中作用及其局限性的全面视角。
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)简介
【8月更文挑战第30天】在人工智能的浪潮中,深度学习以其强大的数据处理能力成为时代的宠儿。本文将深入浅出地介绍深度学习的一个重要分支——卷积神经网络(CNN),并探讨其如何在图像识别等领域大放异彩。通过实例,我们将一窥CNN的神秘面纱,理解其背后的原理,并探索如何利用这一工具解锁数据的深层价值。
下一篇
DDNS