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)
上一篇 2022年8月14日 下午10:36
下一篇 2022年8月14日 下午10:46


相关推荐

  • 最经典的黑客技术入门知识

    最经典的黑客技术入门知识最经典的黑客技术入门知识 整理:Ackarlix 第一节、什么是黑客以我的理解,“黑客”大体上应该分为“正”、“邪”两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善,而邪派黑客则是通过各种黑客技能对系统进行攻击、入侵或者做其他一些有害于网络的事情,因为邪派黑客所从事的事情违背了《黑客守则》,所以他们真正的名字叫“骇客”(Cracker

    2022年6月9日
    34
  • 实测Seedance 2.0: 红包满天飞,字节悄悄进化

    实测Seedance 2.0: 红包满天飞,字节悄悄进化

    2026年3月13日
    1
  • Python的递归函数原理和实例

    Python的递归函数原理和实例递归函数 函数体内调用了该函数本身 分为传递和回归两个过程 组成部分 递归调用和终止条件 优点 思路和代码简单 缺点 占用内存多 效率低下 实例 使用递归来计算 6 的阶乘思路 代码实现 deffunc n ifn 1 return1else returnn func n 1 print func 6 解释 实际上调用过程是 6func 5func 4func 3func 2 func 1 这个过程是传递

    2025年7月31日
    7
  • Perl 正则表达式替换

    Perl 正则表达式替换文本处理中经常需要将字符串中的某些字符替换后再进行处理,以下是新发现的非常方便的方法,充分发挥了Perl正则表达式的威力。$str=”thisisatesting”;$str=~s/(/w+)(/w+)/$2$1/;print$str;————————————OUTPUT:isthisatesti

    2022年5月6日
    122
  • 网络编程socket原理_socket的基本概念和原理

    网络编程socket原理_socket的基本概念和原理一、客户机/服务器模式在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Servermodel)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。客户机/服务器模式在操作过程中采取的是主动请示方式:首先服务器方要先启动,并根据请示提供相应服务:(过程如下)1、打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。2、等待客户请求到

    2022年10月10日
    2
  • java 415_@RequestBody接受参数报415错误「建议收藏」

    java 415_@RequestBody接受参数报415错误「建议收藏」1.简介@RequestBody作用:1)该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;2)再把HttpMessageConverter返回的对象数据绑定到controller中方法的参数上。使用时机:1)GET、POST方式提时,根据requestheaderConten…

    2022年6月4日
    140

发表回复

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

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