GoogLeNet网络结构详解与模型的搭建[通俗易懂]

GoogLeNet网络结构详解与模型的搭建[通俗易懂]首先给出三个链接:1.GoogLeNet网络结构详解视频2.使用pytorch搭建GoogLeNet网络并训练3.使用tensorflow搭建GoogLeNet网络并训练GoogLeNet在2014年由Google团队提出(与VGG网络同年,注意GoogLeNet中的L大写是为了致敬LeNet),斩获当年ImageNet竞赛中ClassificationTask(分…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

首先给出三个链接:

1. GoogLeNet网络结构详解视频

2. 使用pytorch搭建GoogLeNet网络并训练

3. 使用tensorflow搭建GoogLeNet网络并训练

 

GoogLeNet在2014年由Google团队提出(与VGG网络同年,注意GoogLeNet中的L大写是为了致敬LeNet),斩获当年ImageNet竞赛中Classification Task (分类任务) 第一名。原论文名称是《Going deeper with convolutions》,下面是该网络的缩略图,由于原论文提供的图太大,我将原图放在博文的最后。

GoogLeNet网络结构详解与模型的搭建[通俗易懂]

首先说说该网络中的亮点:

(1)引入了Inception结构(融合不同尺度的特征信息)

(2)使用1×1的卷积核进行降维以及映射处理 (虽然VGG网络中也有,但该论文介绍的更详细)

(3)添加两个辅助分类器帮助训练

(4)丢弃全连接层,使用平均池化层(大大减少模型参数,除去两个辅助分类器,网络大小只有vgg的1/20)

 

接着我们来分析一下Inception结构:

GoogLeNet网络结构详解与模型的搭建[通俗易懂]

左图呢,是论文中提出的inception原始结构,右图是inception加上降维功能的结构。

先看左图,inception结构一共有4个分支,也就是说我们的输入的特征矩阵并行的通过这四个分支得到四个输出,然后在在将这四个输出在深度维度(channel维度)进行拼接得到我们的最终输出(注意,为了让四个分支的输出能够在深度方向进行拼接,必须保证四个分支输出的特征矩阵高度和宽度都相同)。

分支1是卷积核大小为1×1的卷积层,stride=1,

分支2是卷积核大小为3×3的卷积层,stride=1,padding=1(保证输出特征矩阵的高和宽和输入特征矩阵相等),

分支3是卷积核大小为5×5的卷积层,stride=1,padding=2(保证输出特征矩阵的高和宽和输入特征矩阵相等),

分支4是池化核大小为3×3的最大池化下采样,stride=1,padding=1(保证输出特征矩阵的高和宽和输入特征矩阵相等)。

 

再看右图,对比左图,就是在分支2,3,4上加入了卷积核大小为1×1的卷积层,目的是为了降维,减少模型训练参数,减少计算量,下面我们看看1×1的卷积核是如何减少训练模型参数的。同样是对一个深度为512的特征矩阵使用64个大小为5×5的卷积核进行卷积,不使用1×1卷积核进行降维话一共需要819200个参数,如果使用1×1卷积核进行降维一共需要50688个参数,明显少了很多。

GoogLeNet网络结构详解与模型的搭建[通俗易懂]

 

每个卷积层的卷积核个数如何确定呢,下面是原论文中给出的参数列表,对于我们搭建的Inception模块,所需要使用到参数有#1×1, #3x3reduce, #3×3, #5x5reduce, #5×5, poolproj,这6个参数,分别对应着所使用的卷积核个数。

GoogLeNet网络结构详解与模型的搭建[通俗易懂]

下面这幅图是我将Inception模块所使用到的参数信息标注在每个分支上,其中#1×1对应着分支1上1×1的卷积核个数,#3x3reduce对应着分支2上1×1的卷积核个数,#3×3对应着分支2上3×3的卷积核个数,#5x5reduce对应着分支3上1×1的卷积核个数,#5×5对应着分支3上5×5的卷积核个数,poolproj对应着分支4上1×1的卷积核个数。

GoogLeNet网络结构详解与模型的搭建[通俗易懂]

 

接着下来在看看辅助分类器结构,网络中的两个辅助分类器结构是一模一样的,如下图所示:

GoogLeNet网络结构详解与模型的搭建[通俗易懂]

着两个辅助分类器的输入分别来自Inception(4a)和Inception(4d)。

辅助分类器的第一层是一个平均池化下采样层,池化核大小为5×5,stride=3

第二层是卷积层,卷积核大小为1×1,stride=1,卷积核个数是128

第三层是全连接层,节点个数是1024

第四层是全连接层,节点个数是1000(对应分类的类别个数)

 

关于模型的搭建与训练代码放在我的github中,大家可自行下载使用:

https://github.com/WZMIAOMIAO/deep-learning-for-image-processing

pytorch版本在pytorch_learning文件夹中,tensorflow版本在tensorflow_learning文件夹中.
 

最后给出我标注了部分信息的GoogLeNet网络结构图:

GoogLeNet网络结构详解与模型的搭建[通俗易懂]

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170451.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Stairway to SQLCLR Level 5: Development (Using .NET within SQL Server)

    Stairway to SQLCLR Level 5: Development (Using .NET within SQL Server)原文链接:http://www.sqlservercentral.com/articles/Stairway+Series/119429/BySolomonRutzky,2015/03/11TheSeriesThisarticleispartoftheStairwaySeries:StairwaytoSQLCLRThepossibil

    2022年7月20日
    12
  • PyCharm激活码永久有效PyCharm2020.1.3激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2020.1.3激活码教程-持续更新,一步到位PyCharm激活码永久有效2020.1.3激活码教程-Windows版永久激活-持续更新,Idea激活码2020.1.3成功激活

    2022年6月19日
    49
  • HTTP.SYS远程代码执行漏洞(MS15-034)

    HTTP.SYS远程代码执行漏洞(MS15-034)目录简介影响范围危害漏洞复现win2008r2换成win7利用msf简介漏洞编号:CVE-2015-1635(MS15-034)远程执行代码漏洞存在于HTTP协议堆栈(HTTP.sys)中,当HTTP.sys未正确分析经特殊设计的HTTP请求时会导致此漏洞。成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。影响范围任何安装了微软IIS6.0以上的WinServer2008R2、Win…

    2022年7月25日
    18
  • linux云服务器上安装node[通俗易懂]

    linux云服务器上安装node[通俗易懂]云服务器上搭建nodejs前言第一步:下载wget第二步:下载nodejs功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入前言这篇是记录搭建nodejs过程的一篇文章,同时也希望能够帮到跟我一样对linux零基础的同学们。第一

    2025年8月29日
    8
  • bass reducer什么意思_map filter foreach区别

    bass reducer什么意思_map filter foreach区别对于一些环境变量的配置文件,如想使更改后立即生效,多用souce+file执行后即可。如/etc/profile里加了配置,source和bash的区别:sourcefilenam

    2022年8月5日
    5
  • acwing-1169. 糖果(差分约束)「建议收藏」

    acwing-1169. 糖果(差分约束)「建议收藏」幼儿园里有 N 个小朋友,老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候, 老师需要满足小朋友们的 K 个要求。幼儿园的糖果总是有限的,老师想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求。输入格式输入的第一行是两个整数 N,K。接下来 K 行,表示分配糖果时需要满足的关系,每行 3 个数字 X,A,B。如果 X=1.表示第 A 个小

    2022年8月11日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号