【Pytorch神经网络理论篇】 30 图片分类模型:Inception模型

同学你好!本文章于2021年末编写,获得广泛的好评!

故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现,

Pytorch深度学习·理论篇(2023版)目录地址为:

CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!https://v9999.blog.csdn.net/article/details/127587345欢迎大家订阅(2023版)理论篇

以下为2021版原文~~~~

 

1 Inception系列模型

Incepton系列模型包括V1、V2、V3、V4等版本,主要解决深层网络的三个问题:

  • 训练数据集有限,参数太多,容易过拟合;
  • 网络越大,计算复杂度越大,难以应用;
  • 网络越深,梯度越往后传,越容易消失(梯度弥散),难以优化模型。

1.1 多分支结构

原始的Inception模型采用多分支结构(见图1-1),它将1×1卷积、3×3卷积最大池化堆叠在一起。这种结构既可以增加网络的宽度,又可以增强网络对不同尺寸的适应性。

Inception模型包含3种不同尺寸的卷积和1个最大池化,增强了网络对不同尺寸的适应性。

Inception模型可以让网络的深度和宽度高效率地扩充,提高准确率。

Inceρtion模型本身如同大网络中的一个小网络,其结构可以反复堆叠在一起形成大网络。

1.2 全局均值池化(文章来源:Network in Network)

全局均值池化是指在平均池化层中使用同等大小的过滤器对特征进行过滤。一般使用它用来代替深层网络结构中最后的全连接输出层。

1.2.1 全局均值池化的具体用法

在卷积处理之后,对每个特征图的一整张图片进行全局均值池化,生成一个值,即每个特征图相当于一个输出特征,这个特征就表示我们输出类的特征。

即在做1000个分类任务时,最后一层的特征图个数要选择1000,这样就可以直接得出分类。

1.2.2 Network in Network中的实现

作者利用其进行1000个物体分类,最后设计了一个4层的NIN(Network In Network)+全局均值池化,如图1-2所示。

2 Inception V1模型

Inception V1模型在原有的Inception模型上做了一些改进。原因是在Inception模型中,

3 Inception V2模型

卷积核是针对其上一层的输出结果进行计算的,因此会存在,5×5卷积核所需的计算量就会很大,所生成的特征图很厚。

为了避免这一现象,InceptionV1模型在3×3卷积前、5×5卷积前、3×3最大池化后分别加上了1×1卷积,以起到降低特征图厚度的作用(其中1×1卷积主要用来降维)

3.1 InceptionV1模型图

InceptionV1模型中有4个分支。

3.1.1 分支介绍

第1个分支:对输入进行1×1卷积,1×1卷积既可以跨通道组织信息,提高网络的表达能力,又可以对输出通道升维和降维。

第2个分支:先使用1×1卷积,然后使用3×3卷积,相当于进行了两次特征变换。

第3个分支:先使用1×1卷积,然后使用5×5卷积。

第4个分支:3×3最大池化后直接使用1×1卷积。

3.1.2 InceptionV1模型图

3.1.3  InceptionV1的特点

4个分支都使用了1×1卷积,有的分支只使用了1×1卷积,有的分支使用了1×1的卷积后也会再使用其他尺寸卷积。

因为1×1卷积的性价比很高,用很小的计算量就能增加一层特征变换和非线性化。最终lnceptionV1模型的4个分支通过一个聚合操作合并(使用torch.cat函数在输出通道数的维度上聚合)。

4 Inception V2模型

4.1 Inception V2模型的改进措施

Inception V2模型在lnceptionV1模型的卷积之后加入了BN层,使每一层的输出都归一化处理,减少了内部协变量移位问题;同时还使用梯度截断的技术,增加了训练的稳定性。

lnceptionV2模型还借鉴VGG模型,用两个3×3卷积替代InceptionV1模型中的5×5卷积,降低参数数量,提升运算速度。

4.2 Inception V2 模型 

5 Inception V3模型

Inception V3模型没有再加入其他的技术,只是将Inception V2的卷积核变得更小

5.1 Inception V3模型具体做法

将nception V2模型的3×3分解成两个一维的卷积(1×3,3×1)。这种方法主要是基于线性代数的原理,即一个[n,n]的矩阵,可以分解成矩阵[n,1]×矩阵[1,n]。

5.2 Inception V3模型的实际效果计算

假设有256个特征输入和256个特征输出,假定lnception层只能执行3×3卷积,也就是总共要完成256×256×3×3次的卷积(589824次乘积累加运算)。

假设现在需要减少进行卷积运算的特征的数量,将其变为64(即256/4)个。在这种情况下,首先进行256→64的特征的1×1卷积,然后在所有Inception层的分支上进行64次卷积,最后使用一个来自64→256的特征的1×1卷积。

256×64×1×1=16384

64×64×3×3 = 36864

64×256×1×1=16384

相比之前的589824次,现在共有69632(16384+36864+16384)次的计算量。

在实际测试中,这种结构在前几层效果不太好,但对特征图大小为12~20的中间层效果明显,也可以大大增加运算速度。另外,网络输入从224×224变为299×299,设计了35×35/17×17/8×8的模块。

6 Inception V4模型

6.1 Inception V4模型改进手段

在InceptionV3模型的基础上结合残差连接技术进行结构的优化调整,通过二者的结合,得到了两个比较出色的网络模型。

6.2 lnception V4模型

Inception V4模型仅是在InceptionV3模型的基础上由4个卷积分支变为6个卷积分支,但没有使用残差连接。

6.3 Inception-ResNet V2模型

Inception-ResNet V2模型主要是在InceptionV3模型的基础上加入ResNet模型的残差连接,是lnceptionV3模型与ResNet模型的结合。

残差连接在Inception模型中具有提高网络准确率,而且不会增加计算量的作用。

6.4 Inception-ResNetV2模型与lnception V4对比

在网络复杂度相近的情况下,Inception-ResNetV2模型略优于Inception V4模型。

通过将3个带有残差连接的inception模型和一个lnceptionV4模型组合,就可以在lmagelNet上得到3.08%的错误率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Pytorch神经网络理论篇】 31 图片分类模型:ResNet模型+DenseNet模型+EffcientNet模型

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积

1 PNASNet模型简介 PNASNet模型是Google公司的AutoML架构自动搜索所产生的模型,它使用渐进式网络架构搜索技术,并通过迭代自学习的方式,来寻找最优网络结构。即用机器来设计机器学习算法,使得它能够更好地服务于用户提供的数据。该…

s5k5e2ya MIPI 摄像头调试

1、驱动移植的话按照我之前的文章来做 驱动里面注意是几路的lane,一般mipi的话是差分信号,2路和4路是比较常见的。2、mipi波形 很明显上面的波形是不正确的。dp dn有一个都成了正弦波了。 首先,我们要找一下正确的波形 正确的波形应该是DP和DN不会同时…

【Pytorch神经网络实战案例】23 使用ImagNet的预训练模型识别图片内容

1 案例基本工具概述 1.1 数据集简介 Imagenet数据集共有1000个类别,表明该数据集上的预训练模型最多可以输出1000种不同的分类结果。 Imagenet数据集是目前深度学习图像领域应用得非常多的一个领域,关于图像分类、定位、检测等研究工作大多基于此数据…

杂谈转载

一、什么是运行时(Runtime)? 运行时是苹果提供的纯C语言的开发库(运行时是一种非常牛逼、开发中经常用到的底层技术)二、运行时的作用? 能获得某个类的所有成员变量能获得某个类的所有属性能获得某个类的所有方法交换…

【Pytorch神经网络实战案例】24 基于迁移学习识别多种鸟类(CUB-200数据集)

1 迁移学习 在实际开发中,常会使用迁移学习将预训练模型中的特征提取能力转移到自己的模型中。 1.1 迁移学习定义 迁移学习指将在一个任务上训练完成的模型进行简单的修改,再用另一个任务的数据继续训练,使之能够完成新的任务。 1.1.1 迁…

【Pytorch神经网络理论篇】 33 基于图片内容处理的机器视觉:目标检测+图片分割+非极大值抑制+Mask R-CNN模型

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

arduino i2c 如何写16位寄存器_树莓派3B开发Go语言(二)寄存器版本GPIO

作者:爪爪熊链接:https://www.jianshu.com/p/0495c0554a63來源:简书之前将go语言的运行环境给搭建起来了,但是没有开始真正的试试Go 语言操作树莓派硬件的效果。一、树莓派3B硬件介绍树莓派3B采用了博通的BCM2837方案,…

【Pytorch神经网络实战案例】25 (带数据增强)基于迁移学习识别多种鸟类(CUB-200数据集)

1 数据增强 在目前分类效果最好的EficientNet系列模型中,EfficientNet-B7版本的模型就是使用随机数据增强方法训练而成的。 RandAugment方法也是目前主流的数据增强方法,用RandAugment方法进行训练,会使模型的精度得到提升。 2 RandAugment…

diskgenius 数据迁移_U盘格式化后数据恢复免费方法教程

U盘里的数据一般都很重要,比如论文或者办公文件,而有时候我们会被病毒或者误操作把U盘给格式化了,这时候要怎么恢复U盘里的数据呢,只有一个办法,就是用U盘数据恢复软件,但网上此类软件虽然很多,…

【Pytorch神经网络理论篇】 34 样本均衡+分类模型常见损失函数

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

安卓 camera 调用流程_安卓如何做出微信那样的界面仿微信“我”的界面1/5

本系列目标通过安卓编程仿写微信“我”的界面,让大家也能做出类似微信界面.效果图如下:本文目标做出页面顶部的相机部分(其他部分在后续文章中逐步分享).效果图如下:实现方案通过截图工具或者下载一张照相机照片,放到工程的src/main/res/drawable目录下,命名为camera.png添加一…

【Pytorch神经网络实战案例】26 MaskR-CNN内置模型实现目标检测

1 Pytorch中的目标检测内置模型 在torchvision库下的modelsldetecton目录中,找到__int__.py文件。该文件中存放着可以导出的PyTorch内置的目标检测模型。 2 MaskR-CNN内置模型实现目标检测 2.1 代码逻辑简述 将COCO2017数据集上的预训练模型maskrcnm_resnet50_fp…

【Pytorch神经网络实战案例】27 MaskR-CNN内置模型实现语义分割

1 PyTorch中语义分割的内置模型 在torchvision库下的models\segmentation目录中,找到segmentation.Py文件。该文件中存放着PyTorch内置的语义分割模型。 2 MaskR-CNN内置模型实现语义分割 2.1 代码逻辑简述 将COCO 2017数据集上的预训练模型dceplabv3_resnet101…

怎么查看电脑内存和配置_电脑内存不足处理方法,电脑卡死处理方法。

超过10万人正在关注赶快来关注吧,这里有你想找的热点资讯,这里有你想要的各种资料,还有海量的资源,还在等什么。快来关注,大佬带你开车。电脑系统经常奔溃,软件经常运行不了,开不了机&#xff0…

前端开源项目周报0307

由OpenDigg 出品的前端开源项目周报第十一期来啦。我们的前端开源周报集合了OpenDigg一周来新收录的优质的前端开源项目,方便前端开发人员便捷的找到自己需要的项目工具等。 react-trend 简单优雅的光线 react-progressive-web-app 优化ProgressiveWeb应用开发 pull…

【Pytorch神经网络理论篇】 35 GaitSet模型:步态识别思路+水平金字塔池化+三元损失

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

win7分区软件_神奇的工作室win7旗舰版重装系统连不上网怎么解决

深度技术win7系统下载有的时刻我们的电脑安装、重装了win10操作系统之后有的小伙伴们就发现了自己的电脑连不上网了。对于这种问题小编以为可能是我们的电脑在安装系统的过程中泛起了一些内部组件的冲突或者是由于网卡驱动没有安装好导致的,可以通过重新安装、重装驱…

【Pytorch神经网络实战案例】28 GitSet模型进行步态与身份识别(CASIA-B数据集)

1 CASIA-B数据集 本例使用的是预处理后的CASIA-B数据集, 数据集下载网址如下。 http://www.cbsr.ia.ac.cn/china/Gait%20Databases%20cH.asp 该数据集是一个大规模的、多视角的步态库。其中包括124个人,每个人有11个视角(0,18&am…

Android Camera调用流程

一个流程图画的非常好的文章 http://blog.csdn.net/lushengchu_luis/article/details/11033095 1、Packages/apps/到framework 打开Camera ./packages/apps/Camera/src/com/android/camera/Camera.java 进来第一个肯定是onCreate(Bundle icicle) { 这里是开始了一个Camera…