在研究yolo v1的时候碰到的GoogleNet,虽然都是过时的东西,还是记录一下
下面是GoogleNET的结构。有3个conv层和9个inception module以及1个FC层,因为提出了inception module,所以GoogleNet又称为inception net。

GoogleNet的特殊性在于inception module,就是四个操作并行的层。这个层叫做inception module

直观来看,inception module相对于VGG 系列有如下优点:

  1. 不同感受野的feature进行融合,增加了网络的多尺度能力。
  2. 模块穿插1x1卷积了,通过降维【减少channel数目】,有减少计算量的作用。

可以看一下这里的实现:

import torch
from torch import nn
# 定义一个卷积加一个 relu 激活函数和一个 batchnorm 作为一个基本的层结构
def conv_relu(in_channel, out_channel, kernel, stride=1, padding=0):layer = nn.Sequential(nn.Conv2d(in_channel, out_channel, kernel, stride, padding),nn.BatchNorm2d(out_channel, eps=1e-3),nn.ReLU(True))return layer
class inception(nn.Module):def __init__(self, in_channel, out1_1, out2_1, out2_3, out3_1, out3_5, out4_1):#out1_1是最左边的通道, #out2_1是从左往右第二个通道的第一个卷积, out2_3第二个通道的第二个卷积, #out3_1第三个通道第一个卷积, out3_5第三个通道第二个卷积, #out4_1第四个通道super(inception, self).__init__()# 第一条线路self.branch1x1 = conv_relu(in_channel, out1_1, 1)# 第二条线路self.branch3x3 = nn.Sequential( conv_relu(in_channel, out2_1, 1),conv_relu(out2_1, out2_3, 3, padding=1))# 第三条线路self.branch5x5 = nn.Sequential(conv_relu(in_channel, out3_1, 1),conv_relu(out3_1, out3_5, 5, padding=2))# 第四条线路self.branch_pool = nn.Sequential(nn.MaxPool2d(3, stride=1, padding=1),conv_relu(in_channel, out4_1, 1))def forward(self, x):f1 = self.branch1x1(x)f2 = self.branch3x3(x)f3 = self.branch5x5(x)f4 = self.branch_pool(x)output = torch.cat((f1, f2, f3, f4), dim=1)return output
test_net = inception(3, 64, 48, 64, 64, 96, 32)
#in_channel=3 out1_1=64, out2_1, out2_3, out3_1, out3_5, out4_1
test_x = Variable(torch.zeros(1, 3, 96, 96))
print('input shape: {} x {} x {}'.format(test_x.shape[1], test_x.shape[2], test_x.shape[3]))
test_y = test_net(test_x)
print('output shape: {} x {} x {}'.format(test_y.shape[1], test_y.shape[2], test_y.shape[3]))

输入是3x96x96,第一条通道是64x96x96,第二条通道分别是48x96x96,64x96x96,第三条通道64x96x96, 96x96x96,第四条通道32x96x96
64 64 96 32 concate起来就是256
所以输出是 256 x 96 x 96。
1 x 1 的卷积是为了降低输入的特征通道,减少参数计算量。通过融合不一样的感受野,增强模型的表达和学习能力。

参考
https://blog.csdn.net/kuweicai/article/details/114993693

GoogleNet和Inception模块相关推荐

  1. 王权富贵:GoogLeNet的Inception模块变化。

    GooLeNet的详细理解可以参考这篇文章,文章详细的说明了V1-V4之间的变化. GooLeNetV1提出了InceptionV1模块,1*1,3*3,5*5这些卷积最后的合并是深度相加.大卷积如3 ...

  2. 【3】卷积神经网络之GoogLeNet和Inception

    Inception 网络是 CNN 分类器发展史上一个重要的里程碑.在 Inception 出现之前,大部分流行 CNN 仅仅是把卷积层堆叠得越来越多,使网络越来越深,以此希望能够得到更好的性能.例如 ...

  3. 论文解析:理论分析Inception模块和GoogLeNet

    Inception-V1 目的  自从卷积神经网络诞生以来,其标准范式就是堆叠的卷积层夹杂着池化层或者是归一化层,发展方向主要是在网络的大小上做文章,无论是增加网络的层数或者说是增加每层网络中神经元的 ...

  4. 深度神经网络中的Inception模块介绍

    深度神经网络(Deep Neural Networks, DNN)或深度卷积网络中的Inception模块是由Google的Christian Szegedy等人提出,包括Inception-v1.I ...

  5. 一文读懂:GoogleNet的Inception从v1到v4的演变

    来源 | 机器学习炼丹术 GoogleNet和VGG是ImageNet挑战赛中的第一名和第二名.共同特点就是两个网络的层次都更深了.但是: VGG继承了LeNet和AlexNet的一些框架结构 而Go ...

  6. 深度解读GoogleNet之Inception 系列

    GoogleNet设计的目的 GoogleNet设计的初衷是为了提高在网络里面的计算资源的利用率. 卷积的稀疏性 卷积的稀疏性是指卷积通常对应一个非常稀疏的矩阵,传统的神经网络是全连接的,后面每一层的 ...

  7. Inception模块

    Inception网络或Inception层的作用是代替人工来确定卷积层中的卷积核类型,或者是否需要创建卷积层和池化层,可以代替你来做决定,虽然网络架构比较复杂,但网络表现却非常好.下图是Incept ...

  8. 白话详细解读(一)-----GoogLeNet(Inception V1-Inception V3)

    一.背景 GoogLeNet.VGGNet分别是2014年ImageNet挑战赛的第一名和第二名,相对于VGGNet的网络结构,GoogLeNet则进行了大胆的尝试,提出了Inception结构,这种 ...

  9. 计算机视觉Baseline网络串烧(AlexNet、NIN、VGG、GoogLeNet、Inception、ResNet、InceptionResNet、DenseNet、SENet、ResNeXt)

    将计算机视觉中的几个知名Baseline网络放在一起讲解其主要内容,如果需要了解详细细节建议阅读原论文 1.AlexNet(ImageNet Classification with Deep Conv ...

最新文章

  1. Blockchain实现详细手册
  2. js json对象转字符串_Mock.js模拟数据实现前端独立开发
  3. ob_start ob_end_clean的用法 fetch
  4. apache+mod_wsgi+django的环境配置
  5. 进程,进程组,作业,会话,控制终端
  6. SAP Spartacus user role页面的checkbox设计明细介绍
  7. 达摩院年终预测出炉:2022 十大科技趋势,AI for Science 高居榜首
  8. mySQL 建表约束
  9. 磁盘的成组与分解技术
  10. Silverlight使用WCF实现数据通信
  11. 7.软件架构设计:大型网站技术架构与业务架构融合之道 --- 框架、软件与中间件
  12. vba ado返回集合_VBA利用IE,抓取深市股票涨跌数据
  13. SQL第四周学习笔记---python操作数据库、游标、sqlite、mysql数据库银行转账
  14. 计算机设计大赛作品开发文档
  15. MySQL Front订单信息表,mysqlfront
  16. 修改服务器配额有什么坏处,云服务器配额调整
  17. 计算机excel无法打开,电脑excel打不开的解决方法
  18. win7桌面上计算机图标名称怎么改,win7电脑桌面图标排列方式如何设置 win7电脑桌面图标排列方法...
  19. 七分设计感的纯Flutter项目(Mung三部曲)
  20. 崛起的云平台,彰显信息国产化的中国力量

热门文章

  1. vue 自动触发点击事件
  2. 洛谷OJ P1263 宫廷守卫
  3. iOS学习笔记--Quartz2D
  4. python backspace 转义_如何将backspace\x08应用于字符串?
  5. 在VISIO中画一个倾斜的三维长方体
  6. 华为路由器查看debug信息
  7. 基于web前端技术的中国围棋
  8. CString——Left、Right、Find、ReverseFind
  9. 农产品电子商务运营应该怎么做?
  10. 闲置iMac这样处理更适合