Google Inception Net网络解析和代码实现

本文详细解析Google的Inception V3网络结构,包括Inception Module的设计原理,网络结构,代码实现以及技术亮点,如参数量降低、1x1卷积的应用和Batch Normalization等。此外,还介绍了辅助分类节点(Auxiliary Logits)的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Google Inception Net网络解析和代码实现

Google Inception Net采用了特殊的Inception Module构建网络,网络模型比VGG复杂,网络层数更深,但参数量比VGG少,性能也更好,在ILSVRC 2014的比赛中以较大优势获得了第一名,同年提出的VGG Net获得了第二名。从2014年网络被第一次提出到2016年,Inception共经历了四次改进和升级,并分别衍生了Inception V1-V4的版本。在几次改进迭代中,V3版本最能体现Inception网络的核心内容和技术创新,包括module的结构和各种trick,本文主要对Inception V3分别从网络结构、代码实现和技术亮点等几个方面进行解析。

1 Inception Module

module1
module2
Inception中除了普通的卷积和池化操作外,还包含多个模块组,每个模块组中包含多个Inception Module(结构如图所示),Module在base net的基础上,分为4个分支(branch),通过设定好的卷积核(常用1x1卷积和3x3卷积)和池化,保持feature map的空间尺寸不变,通道数增加,对输入数据进行特征提取,在每个module结尾再将几个branch输出的feature map进行通道维度的拼接。对相同的base net使用不同的卷积和池化操作,增加了网络对不同尺度feature map的适应性,module结构也可以让网络的深度和宽度高效率的扩充,增强模型提取特征的能力,提升准确率。

Inception Module一般有4个分支:

  • 分支1:一般是1x1卷积,进行简单特征抽象
  • 分支2:一般是1x1卷积后在接分解的1xn和nx1卷积(factorized,后面解释),进行较复杂特征抽象
  • 分支3:一般和分支2类似,但深度更深,进行较复杂特征抽象
  • 分支4:一般是最大池化或平均池化

通过4种不同程度的特征抽象和变换,选择性保留不同层的高阶特征,最大程度丰富网络的表达能力

2 网络结构

操作 kernel尺寸/步长 输出尺寸
卷积 3x3 / 2 149x149x32
卷积 3x3 / 1 147x147x32
卷积 3x3 / 1 147x147x64
最大池化 3x3 / 2 73x73x64
卷积 3x3 / 1 73x73x80
卷积 3x3 / 2 71x71x192
最大池化 3x3 / 1 35x35x192
Inception模块组 3个Inception Module 35x35x228
Inception模块组 5个Inception Module 17x17x768
Inception模块组 3个Inception Module 8x8x1280
平均池化 8x8 8x8x2048
线性 logits 1x1x2048
softmax
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值