GoogLeNet实现的过程

简介: 【7月更文挑战第26天】GoogLeNet实现的过程。

GoogLeNet实现的过程
这里以Inception模块构建的GoogLeNet(Inception v1)为例,描述GoogLeNet的实现过程。
(1)输入层
原始输入图像大小为224×224×3,为三通道RGB图像。
(2)卷积层
接收224×224×3的矩阵数据,与64个大小为7×7的卷积核(步长为2,padding为“SAME”)做运算,输出为112×112×64,经过3×3的最大值池化(步长为2),输出矩阵为56×56×64。
(3)卷积层
接收56×56×64的矩阵数据,与192个大小为3×3的卷积核(步长为1,padding为“SAME”)做运算,输出为56×56×192,经过3×3的最大值池化(步长为2),输出矩阵为28×28×192。
(4)Inception 3a层
接收28×28×192的矩阵数据,共4个分支,采用不同尺度的卷积核运算,4个分支步长都为1。
第一个分支:与64个大小为1×1的卷积核做运算,输出矩阵为28×28×64。
第二个分支:与96个大小为1×1的卷积核做运算,输出为28×28×96,再与128个大小为3×3的卷积核(padding为“SAME”)做运算,输出矩阵为28×28×128。
第三个分支:与16个大小为1×1的卷积核做运算,输出为28×28×16,再与32个大小为5×5的卷积核(padding为“SAME”)做运算,输出矩阵为28×28×32。
第四个分支:3×3的最大值池化(padding为“SAME”),输出为28×28×192,32个大小为1×1的卷积核,输出矩阵为28×28×32。
将4个分支进行纵向拼接,层数为64+128+32+32=256,所以输出矩阵为28×28×256。
(5)之后的层
以后的层数都以此类推,GoogLeNet模型有9个堆叠的Inception模块,共有22层(如果包括池化层,则是27层)。由于GoogLeNet模型层数比较多,会造成梯度消失的问题,所以,为了阻止梯度消失,在网络中加入了两个辅助分类器。辅助分类器对网络中的两个Inception模块进行了softmax操作,得到的这两个Inception模块的损失,称为辅助损失。总的损失等于最后得到的损失与辅助损失之和,辅助损失仅在训练时使用,在预测过程中不使用。
除了GoogLeNet实现的Inception v1外,还有其他Inception版本,每一个Inception版本的发布都带来了准确率的提升。

目录
相关文章
|
6月前
|
机器学习/深度学习
大模型训练loss突刺原因和解决办法
【1月更文挑战第19天】大模型训练loss突刺原因和解决办法
1001 1
大模型训练loss突刺原因和解决办法
|
4月前
GoogLeNet实现的过程
【7月更文挑战第26天】GoogLeNet实现的过程
37 2
|
4月前
LeNet-5实现的过程
【7月更文挑战第28天】LeNet-5实现的过程。
57 2
|
机器学习/深度学习
LeNet讲解以及搭建训练过程
LeNet讲解以及搭建训练过程
|
PyTorch 算法框架/工具 网络架构
UNet详细解读(二)pytorch从头开始搭建UNet
UNet详细解读(二)pytorch从头开始搭建UNet
289 0
|
算法 PyTorch 算法框架/工具
UNet++详细解读(二)pytorch从头开始搭建UNet++
UNet++详细解读(二)pytorch从头开始搭建UNet++
435 0
|
存储 并行计算 索引
|
并行计算 数据可视化 索引
|
并行计算 Serverless 索引
|
机器学习/深度学习 人工智能 算法
GoogleNet架构解析
GoogleNet 是 2014 年 ImageNet Challenge 图像识别比赛的冠军。从它的名字我们就 可以看出是来自谷歌的团队完成的。前面我们有介绍,GoogleNet 之所以获得冠军,是因为 它进行模型融合以后得到的效果要比 VGGNet 模型融合之后的效果要好。不过单模型比拼, 它与 VGGNet 的效果相当。
406 0
GoogleNet架构解析