1.8.4 卷积神经网络近年来在结构设计上的主要发展和变迁——Inception-v2 和Inception-v3

1.8.4 卷积神经网络近年来在结构设计上的主要发展和变迁——Inception-v2 和Inception-v3

前情回顾:

1.8.1 卷积神经网络近年来在结构设计上的主要发展和变迁——AlexNet

1.8.2 卷积神经网络近年来在结构设计上的主要发展和变迁——VGGNet

1.8.3 卷积神经网络近年来在结构设计上的主要发展和变迁——GoogleNet/inception-v1

lnception-v2/v3 是在同一篇论文里提出的。

论文:Rethinking the inception architecture for computer vision

提出了4点关于网络结构设计的准则。

  • 避免表达瓶颈(representational bottleneck),尤其是在网络的前几层。具体来说,将整个网络看作由输入到输出的信息流,我们需要尽量让网络从前到后各个层的信息表征能力逐渐降低,而不能突然剧烈下降或是在中间某些节点出现瓶颈。
  • 特征图通道越多,能表达的解耦信息就越多,从而更容易进行局部处理,最终加速网络的训练过程
  • 如果要在特征图上做空间域的聚合操作(如3×3卷积),可以在此之前先对特征图的通道进行压缩,这通常不会导致表达能力的损失
  • 限定总计算量的情况下,网络结构在深度和宽度上需要平衡

文中采用了与VGGNet类似的卷积分解的思路,将5×5卷积核分解为两个3×3卷积核

或者更一般地,将 (2k+1)(2k+1) 卷积核分解为k个3×3卷积核

此外,文中还提出了另一种卷积分解思路:将k×k卷积分解为1×k卷积与k×1卷积的串联

当然也可以进一步将1×k卷积和k×1卷积的组织方式由串联改成并联

在这里插入图片描述

图1.12展示了各版本Inception模块的结构示意图,

  • 图1.12(a)是Inception-v1中使用的原始Inception模块;

  • 图1.12(b)、图1.12©、图1.12(d)是Inception-v2/v3中使用的、经过卷积分解的Inception模块,

    • 图1.12(b):Inception-A(将大卷积核分解为小卷积核
    • 图1.12©:Inception-B(串联1×k和k×1卷积)
    • 图1.12(d):Inception-C(并联1×k和k×1卷积)

在这里插入图片描述

为了缓解单纯使用池化层进行下采样带来的表达瓶颈问题,文中还提出了一种下采样模块:在原始Inception模块的基础上略微修改,并将每条支路最后一层的步长改为2,如图1.13所示。

此外,论文中尝试给从网络中间层拉出的辅助分类器的全连接层加上批归一化和Dropout,实验表明这能**提升最终的分类效果。**同时,文中还将输入图片尺寸由 224×224 扩大为 299×299 。

最终,Inception-v3在ImageNet 2012数据集的图像分类任务上,单模型能使Top-5错误率降到4.20%;如果采用标签平滑、多模型集成等辅助训练措施,则能进一步将错误率降至3.50%,具体参见该论文中的讨论。

Inception-v2 与Inception-v3 的具体区别?

  • 有人认为 Inception-v2是Inception-v3在不使用辅助训练措施下的版本

  • 也有人根据Google的示例代码认为Inception-v2仅为Inception-v1加上批归一化并使用Inception-A模块的简单改进版本,这里我们不再具体细分。

参考文献:

《百面深度学习》 诸葛越 江云胜主编

出版社:人民邮电出版社(北京)

ISBN:978-7-115-53097-4

2020年7月第1版(2020年7月北京第二次印刷)

推荐阅读:

//好用小工具↓

分享一个免费的chat工具

分享一个好用的读论文的网站

// 深度学习经典网络↓

LeNet网络(1989年提出,1998年改进)

AlexNet网络(2012年提出)

VGGNet网络(2014年提出)

LeNet、AlexNet、VGGNet总结

GoogLeNet网络(2014年提出)

ResNet网络(2015年提出)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/524257.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# Solidworks二次开发:获取唯一ID的API详解

大家好,今天要介绍的是关于solidworks中可以获取对象唯一ID的几种API,获取唯一ID的API有如下几种: (1)第一种是GetID Method (IComponent2),其含义为获取每个组件的唯一ID。 下面是API中的使用例子&#x…

作为一个前端,在入职新公司如何快速安装好开发环境

由于电脑运行内存才16G有点卡,今天公司给我们换了32G内存,是直接整个主机都换了,环境自然得重新安装,在装的过程中,自己会有些心得体会,就是想着一个新人如何快速安装环境。 个人说一下我的思路&#xff1a…

Mysql的物理文件

1.Windows下面的配置文件是:my.ini [mysql] default-character-setutf8[mysqld] port3306 default_authentication_pluginmysql_native_password basedirE:/phpStudy/phpstudy_pro/Extensions/MySQL8.0.12/ datadirE:/phpStudy/phpstudy_pro/Extensions/MySQL8.0.1…

视频压缩软件都有哪些?分享4款专业的视频软件!

在数字化时代,视频已经成为我们生活中不可或缺的一部分。然而,随着视频质量的不断提升,其占用的存储空间也在迅速增长。为了解决这个问题,视频压缩软件应运而生。本文将为您介绍几款热门的视频压缩软件,帮助您选择最适…

conda创建虚拟环境太慢,Collecting package metadata (current_repodata.json): failed

(省流版:只看加粗红色,末尾也有哦) 平时不怎么用conda,在前公司用服务器的时候用的是公司的conda源,在自己电脑上直接用python创建虚拟环境完事儿,所以对conda的配置并不熟悉~~【狗头】。但是python虚拟环境的最大缺点…

Win安装SSH教程

在Windows操作系统上安装和配置SSH(Secure Shell)可以让你通过加密的方式远程连接和管理其他计算机或服务器。以下是安装和配置SSH的简单教程: 下载OpenSSH for Windows: 访问OpenSSH for Windows的官方网站(https://g…

嵌入式面向对象学习 RT-Thread I/O 设备管理框架 设备驱动层 案例测试

嵌入式面向对象 RT-Thread I/O 设备管理框架 设备驱动层 注:本文介绍性内容转载于《RT-Thread记录(十、全面认识 RT-Thread I/O 设备模型)》 注: 本次使用的开发板 : ​ 兆易创新GD32F407VET6开发板 ​ 雅特力科技…

数据结构面试题报错调试方法记录

栈和队列报错调试 1.用栈实现队列 232. 用栈实现队列 - 力扣(LeetCode) 此题解题思路如下: 先将数据放在pushst栈里面,popst栈为空再把pushst栈里面的数据放进popst栈里面去,不为空则不执行。不为空时候直接拿取栈…

楚雄师范学院数学与计算机学院与树莓集团产教融合合作签约仪式顺利举行!

2024年4月2日,楚雄师范学院数学与计算机学院与树莓集团产教融合合作签约仪式在云南楚雄师范学院隆重举行。未来,双方将在国际数字影像产业园建设产教融合实训基地,全面增强人才培养的社会适应性。 出席本次签约仪式的嘉宾有学院党委书记周云燕…

PyTorch深度学习——张量及其运算

深度学习框架的张量 张量的运算是深度学习的核心,如一张图片可以看作是四维的张量,一个迷你批次的文本可以看作是二维张量,基本上所有的深度学习模型都可以表示为张量的操作,梯度、反向传播算法也可以表示为张量和张量的运算 张…

opencv图像处理技术(阈值处理与图像平滑)

进行图像处理时,常常需要对图像进行预处理以提取所需的信息或改善图像质量。阈值处理和图像平滑是两种常见的预处理技术。 阈值处理 阈值处理是一种图像分割技术,其基本思想是将图像中的像素值与一个或多个预先设定的阈值进行比较,根据比较…

Git入门实战教程之创建版本库

一、Git简介 Git是一个分布式版本控制系,分层结构如下: Git分为四层: 1、工作目录 当前正在工作的项目的实际文件目录,我们执行命令git init时所在的地方,也就是我们执行一切文件操作的地方。 2、暂存区 暂存区是…

软件测试常考面试题-软件测试面试宝典(一篇足矣)

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

数据库表设计18条黄金规则

前言 对于后端开发同学来说,访问数据库,是代码中必不可少的一个环节。 系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracle等。 后端开发的日常工作&#xff…

C语言初阶—9函数

函数的声明 (main函数前)----告诉有一个函数 格式: 类型 函数名(参数); 函数的声明 放到头文件add.c 函数的定义 ----创建函数----放到add.c 格式:类型 函数名(参数) { 语句项; } 在文…

leetcode.707. 设计链表

题目 题意: 在链表类中实现这些功能: get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。 addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的…

Dubbo 序列化

Dubbo 序列化 1、什么是序列化和反序列化 序列化(serialization)在计算机科学的资料处理中,是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓冲,或经由网络中发送),…

MySQL数据库基础--事务

事务 是一组操作的集合,他是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 默认MySQL的事务是自动提交的,也就是说,当执行…

《C语言深度解剖》(2):详解C语言分支语句和循环

🤡博客主页:醉竺 🥰本文专栏:《C语言深度解剖》 😻欢迎关注:感谢大家的点赞评论关注,祝您学有所成! ✨✨💜💛想要学习更多数据结构与算法点击专栏链接查看&am…

Node操作mysql

配置 安装mysql模块 npm i mysql建立连接 const mysql require(mysql);const db mysql.createPool({host: 127.0.0.1,user: root,password: admin123,database: my_db_01 });测试 // select 1没有任何实质性作用 只是检查mysql模块是否正常 db.query(select 1, (err, results…