当前位置: 首页 > 编程日记 > 正文

经典网络GoogLeNet介绍

经典网络GoogLeNet由Christian Szegedy等于2014年提出,论文名为《Going deeper with convolutions》,论文见:https://arxiv.org/pdf/1409.4842v1.pdf

GoogLeNet网络用到了Inception-v1模块,关于Inception模块的介绍可以参考:https://blog.csdn.net/fengbingchun/article/details/113482036

假如输入图像大小为n*n,过滤器(filter)为f*f,padding为p,步长(stride)为s,则输出大小为:计算卷积层大小,如果商不是整数,向下取整,即floor函数;计算池化层大小,如果商不是整数,向上取整,即ceil函数。参考:https://blog.csdn.net/fengbingchun/article/details/80262495

GoogLeNet网络:

(1).使用了1*1卷积核,减少feature map数。

(2).采用了模块化的结构(Inception-v1模块),方便增添和修改。

(3).网络最后采用全局平均池化(global average pooling)+全连接层+Softmax,而VGG和AlexNet最后使用连续3个全连接层+Softmax。

(4).为避免梯度消失,训练网络时额外增加了2个辅助分类器,辅助分类器是将中间某一层的输出用作分类,并按一个较小的权重加到最终分类结果中。

GoogLeNet测试样本处理:

(1).对于每个测试样本,将图像的短边缩放到四种尺寸,分别为256、288、320、352;

(2).从每种缩放后的尺寸的测试样本中,截取图像的左、中、右方形区域(在肖像图像中截取上、中、下方形区域);

(3).对于截取后的每个方形区域,从4个角和中心分别截取一个224*224区域,再将此方形区域缩小到224*224;

(4).将每个获取的224*224图像进行水平翻转;

这样每个原始测试样本共得到4*3*6*2=144张图像。

GoogLeNet训练网络时架构(有22+5层),论文截图如下:

Caffe中GoogLeNet网络相关文件见:https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet

GoogLeNet推理网络架构:总共包含有9个Inception-v1模块,blvc_googlenet中deploy.prototxt,输入层shape为[10,3,224,224],即batch为10,这里调整为1

(1).输入层(Input):图像大小224*224*3。

(2).卷积层1+ReLU:使用64个7*7的filter,stride为2,padding为3,输出为112*112*64,64个feature maps。

(3).最大池化层1+LRN:filter为3*3,stride为2,padding为0,输出为56*56*64,64个feature maps。

(4).卷积层2+ReLU:使用64个1*1的filter,stride为1,padding为0,输出为56*56*64,64个feature maps。

(5).卷积层3+ReLU+LRN:使用192个3*3的filter,stride为1,padding为1,输出为56*56*192,192个feature maps。

(6).最大池化层2:filter为3*3,stride为2,padding为0,输出为28*28*192,192个feature maps。

(7).Inception-1:由左往右,最终输出并拼接为28*28*256,feature maps总数为64+128+32+32=256。

A.卷积+ReLU:使用64个1*1的filter,stride为1,padding为0,输出为28*28*64。

B.卷积+ReLU:使用96个1*1的filter,stride为1,padding为0,输出为28*28*96。然后再一次卷积+ReLU:使用128个3*3的filter,stride为1,padding为1,最终输出为28*28*128。

C. 卷积+ReLU:使用16个1*1的filter,stride为1,padding为0,输出为28*28*16。然后再一次卷积+ReLU:使用32个5*5的filter,stride为1,padding为2,最终输出为28*28*32。

D.最大池化:filter为3*3,stride为1,padding为1,输出为28*28*192。然后再卷积+ReLU:使用32个1*1的filter,stride为1,padding为0,最终输出为28*28*32。

(8).Inception-2:由左往右,最终输出并拼接为28*28*480,feature maps总数为128+192+96+64=480。

(9).最大池化层3:filter为3*3,stride为2,padding为0,输出为14*14*480,480个feature maps。

(10).Inception-3:由左往右,最终输出并拼接为14*14*512,feature maps总数为192+208+48+64=512。

(11).Inception-4:由左往右,最终输出并拼接为14*14*512,feature maps总数为160+224+64+64=512。

(12).Inception-5:由左往右,最终输出并拼接为14*14*512,feature maps总数为128+256+64+64=512。

(13).Inception-6:由左往右,最终输出并拼接为14*14*528,feature maps总数为112+288+64+64=528。

(14).Inception-7:由左往右,最终输出并拼接为14*14*832,feature maps总数为256+320+128+128=832。

(15).最大池化层4:filter为3*3,stride为2,padding为0,输出为7*7*832,832个feature maps。

(16).Inception-8:由左往右,最终输出并拼接为7*7*832,feature maps总数为256+320+128+128=832。

(17).Inception-9:由左往右,最终输出并拼接为14*14*1024,feature maps总数为384+384+128+128=1024。

(18).平均池化层5+Dropout:filter为7*7,stride为1,padding为0,输出为1*1*1024,1024个feature maps。

(19).全连接层:有1000个神经元或1000个feature maps。

(20).输出层(Softmax):输出分类结果,看它究竟是1000个可能类别中的哪一个。

可视化结果如下图所示:

GitHub:https://github.com/fengbingchun/NN_Test

相关文章:

iOS webview 点击按钮返回上一页面或者返回首页

- (void)floatBtn:(UIButton *)sender { NSLog("点击"); if ([self.webView canGoBack]) { [self.webView goBack]; } else{ [self.view resignFirstResponder]; [self.navigationController popViewControllerAnimate…

centos6.6 Kickstart无人值守安装(一):原理篇

为什么80%的码农都做不了架构师?>>> #为什么要自动化无人值守安装? 偷懒……nb……zb……geekno no no 瞬间完成大规模机器部署,提高生产力,节省时间精力,为公司谋取更多利益,实现社会和谐!#怎…

拿来就能用!如何用 AI 算法提高安全运维效率?

作者 | 黄龙责编 | 伍杏玲来源 | CSDN(ID:CSDNnews) 在整个安全工作中,安全运维是不可或缺的一环,其目的是保证各项安全工作持续有效地运作。除了对外的沟通和业务对接相关工作,大部分安全运维的日常工作相…

深度神经网络中Inception-ResNet模块介绍

之前在https://blog.csdn.net/fengbingchun/article/details/113482036 介绍了Inception,在https://blog.csdn.net/fengbingchun/article/details/114167581 介绍了ResNet,这里介绍下深度神经网络中的Inception-ResNet模块。 介绍Inception-ResNet的论文…

iOS 让UIView的左上角和右上角为圆角

-(UIView *)platFormBGV{ if (!_platFormBGV) { _platFormBGV [[UIView alloc] init]; _platFormBGV.backgroundColor [UIColor whiteColor]; _platFormBGV.frame CGRectMake(0, self.view.frame.size.height, APP_WIDTH, 220); // 左上和右上为圆角 UIBezierPath *cornerRa…

HttpUnit学习笔记

HttpUnit 能模拟浏览器的动作,如提交表单、JavaScript执行、基本HTTP认证、cookies建立以及自己主动页面重定向,通过编写代码能够处理取回来的文本、XML DOM或表单、表、链接。当与Junit等框架结合时,就能很easy地进行一个站点的功能測试了。…

C++11中头文件type_traits介绍

C11中的头文件type_traits定义了一系列模板类,在编译期获得某一参数、某一变量、某一个类等等类型信息,主要做静态检查。 此头文件包含三部分: (1).Helper类:帮助创建编译时常量的标准模板类。介绍见以下测试代码: …

反季大清仓,最低仅需34.9元

不知不觉已经12月份了还有一个月就要过年啦很多地方已经进入了寒冬的季节有的地方已经开启了下雪模式纷纷开始买冬天的商品棉衣、羽绒服、取暖器......但是.......今天我是来搞反季清仓的快来看看今天的反季清仓有啥商品~●反季清仓商品—程序员专属定制T ●专属定制T_shirt&am…

iOS 预览word pdf 文件

此类用于改变QLPreviewController 导航栏title #import <QuickLook/QuickLook.h> NS_ASSUME_NONNULL_BEGIN interface QLPreviewController (title) property (nonatomic, strong) NSString *qlpTitle; end NS_ASSUME_NONNULL_END #import "QLPreviewControllertitl…

Java过滤器模式

//创建一个类&#xff0c;在该类上应用标准 public class Person { private String name; private String gender; private String maritalStatus; public Person(String name, String gender, String maritalStatus) { this.name name; …

C++中指向类成员指针的用法

C中&#xff0c;指向类的成员指针包含两种&#xff1a; (1).指向类的成员函数的指针&#xff1a; 类型 (类名::* 函数成员指针名)(参数表); 函数成员指针名 &类名::函数成员名; 也可将以上两条语句调整为一条语句&#xff1a; 类型 (类名::* 函数成员指针名)(参数表) &…

多模态人物识别技术及其在爱奇艺视频场景中的应用 | 公开课笔记

【12月公开课预告】&#xff0c;入群直接获取报名地址12月11日晚8点直播主题&#xff1a;人工智能消化道病理辅助诊断平台——从方法到落地12月12日晚8点直播&#xff1a;利用容器技术打造AI公司技术中台12月17日晚8点直播主题&#xff1a;可重构计算&#xff1a;能效比、通用性…

JsonObject json字符串转换成JSonObject对象

字符串&#xff1a;{"code":"1004","msg":"请先添加系统靠勤人员信息&#xff01;","userRegistInfo":{"acc":"小谷","id":0,"phoneMac":"","phoneNum":"…

基于人脸关键点修复人脸,腾讯等提出优于SOTA的LaFIn生成网络

作者 | Yang Yang、Xiaojie Guo、Jiayi Ma、Lin Ma、Haibin Ling译者 | 刘畅编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导语】现实场景中&#xff0c;人脸的变化是很大的&#xff0c;例如不同的姿势、表情和遮挡等&#xff0c;因此在现…

在Ubuntu上编译opencv 2.4.13源码支持android平台操作步骤

之前在https://blog.csdn.net/fengbingchun/article/details/96430706中编译过opencv源码用于海思平台&#xff0c;这里通过修改脚本编译opencv 2.4.13.6源码&#xff0c;使其支持android平台。 1. 从https://github.com/opencv/opencv/releases下载opencv 2.4.13.6源码&#…

Java组合模式

组合模式&#xff1a;适用于把一组相似的对象当作一个单一的对象&#xff0c;组合迷失一句树形结构来组合对象&#xff0c;用来表示部分以及整体层次。这种类的设计模式属于结构型模式&#xff0c;他创建了对象组的树形结构 这种模式创建了一个包含自己对象组的的类。给类提供了…

SQL故障转移集群操作方法

SQL故障转移集群操作方法1 给SQL服务器配置IP地址,每台服务器需要两个IP,一个通讯用,一个作为心跳线,修改计算机的名称,关闭服务器的防火墙,开启远程桌面.2心跳网卡配置去掉ipv6,并去掉下列几项进行验证3域控制器服务器管理器 添加角色 AD域服务启动AD域服务加入到域中打开DNS服…

Windows/Linux上使用fopen相关函数读取大文件

在介绍读取大文件之前&#xff0c;先了解下<cstdint>文件&#xff0c;标准头文件&#xff0c;存放固定宽度整数类型&#xff0c;如int32_t, uint32_t&#xff0c;不管在32位上还是64位上&#xff0c;长度都为4个字节&#xff1b;int64_t, uint64_t&#xff0c;不管在32位…

蚂蚁金服提新概率图模型GLN,正确率提升8.2%,具备可解释性 | NeurIPS 2019

作者 | 蚂蚁金服编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1b;rgznai100&#xff09;【导读】一年一度的国际顶级学术会议NeurIPS 2019将于12月8日至14日在加拿大温哥华举行。作为人工智能和机器学习领域最顶级的盛会之一&#xff0c;每年都会吸引来自全世界的AI大…

Java外观模式

外观模式&#xff1a;隐藏系统的复杂性&#xff0c;并向客户提供了一个客户端可以访问系统的接口&#xff0c;这种类型的设计模式属于结构型模式&#xff0c;他向现有的系统添加一个接口&#xff0c;来隐藏系统的复杂性 这种模式设计到一个单一的类&#xff0c;该类提供了客户请…

【spring框架】spring整合hibernate初步

spring与hibernate做整合的时候&#xff0c;首先我们要获得sessionFactory。我们一般只需要操作一个sessionFactory&#xff0c;也就是一个"单例"&#xff0c;这一点很适合交给spring来管理。下面的代码演示如何创建一个JDBC DataSource 和Hibernate SessionFactory:…

PyTorch简介

PyTorch是一个针对深度学习&#xff0c;并且使用GPU和CPU来优化的tensor library(张量库)。最新发布的稳定版本为1.9&#xff0c;源码在https://github.com/pytorch/pytorch 。它支持在Linux、Mac和Windows上编译和运行。调用Python接口可以通过Anaconda或Pip的方式安装&#x…

Java 责任链模式

顾名思义&#xff0c;责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;为请求创建了一个接收者对象的链。这种模式给予请求的类型&#xff0c;对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中&#xff0c;通常每个接收者…

2019嵌入式智能国际大会圆满落幕,7大专场精彩瞬间释出!

全球第二大市场研究机构MarketsandMarkets报告称&#xff0c;2019年全球AIoT市场规模为51亿美元&#xff0c;到2024年&#xff0c;这一数字将增长至162亿美元。5G元年&#xff0c;人工智能开始更多地转向应用智能。基于此&#xff0c;12月6-7日&#xff0c;由哈尔滨工业大学&am…

ubuntu12.04 alternate win7 双系统安装

ubuntu alternate的安装比desktop复杂一点,因为alternate的安装过程有个步骤是检测cd-rom,如果你是刻盘安装,自然没问题,但是,现在的安装一般是将系统刻到U盘里,或者在硬盘中划出一个分区,将其制作成启动盘. 这里我是用U盘安装的... 安装前的准备: 1)在硬盘上分出一个空闲分区:…

C/C++包管理工具Conan简介

Conan是一个开源的、跨平台的、去中心化的C和C包管理器&#xff0c;它的源码在https://github.com/conan-io/conan &#xff0c;License为MIT&#xff0c;最新发布版本为1.38.0&#xff0c;由Python实现。版本更新较频繁&#xff0c;但保持向前兼容。 Conan特点&#xff1a; (1…

神经架构搜索在视频理解中研究进展的综述

作者 | Michael S. Ryoo 研究员与 AJ Piergiovanni 学生研究员&#xff08;Google 机器人团队&#xff09;来源 | TensorFlow&#xff08;ID&#xff1a;TensorFlow_official&#xff09;视频理解一直是项颇具挑战性的难题。视频中包含时空数据&#xff0c;因此要提取特征表示需…

Java命令模式

命令模式&#xff08;Command Pattern&#xff09;是一种数据驱动的设计模式&#xff0c;它属于行为型模式。请求以命令的形式包裹在对象中&#xff0c;并传给调用对象。调用对象寻找可以处理该命令的合适的对象&#xff0c;并把该命令传给相应的对象&#xff0c;该对象执行命令…

关于本分类(codeforces-好题系列)

前前后后花了将近半个月&#xff0c;终于将吴神的十场cf的50题目补完了&#xff0c;看到了各种技巧和DP的好题&#xff0c;为了方便以后查阅&#xff0c;新增一个分类便于查找&#xff0c;当然本分类的题目其他分类一般都有&#xff0c;先去吃个饭&#xff0c;回来刷题解转载于…

Conan客户端简单使用示例

在https://blog.csdn.net/fengbingchun/article/details/118443862 中对Conan进行了简单介绍&#xff0c;这里调用openssl的接口&#xff0c;写一个简单的test来说明Conan的使用步骤&#xff1a; (1).首先添加一个conanfile.txt文件&#xff0c;内容如下&#xff1a;依赖项为op…