深度学习之路=====12=====>>MNasNet(tensorflow2)

news2024/11/26 4:51:41

简介

原文: MnasNet: Platform-Aware Neural Architecture Search for Mobile
来源: CVPR2019
作者: Google (Mingxing Tan, Bo Chen, Ruoming Pang, Vijay Vasudevan, Mark Sandler, Andrew Howard, Quoc V. Le)
摘要: 使用神经结构搜索(neural architecture search)方法,将时延显式结合到模型优化目标中,在精度和速度之间得到折衷(trade-off)。提出了层级搜索空间(actorized hierarchical search space),使得灵活性和搜索空间大小适当。该模型在Pixel 手机上在ImageNet 分类任务中达到75.2%的准确率和78ms lantency,这比MobileNet快1.8倍,精度高0.5%,比NasNet快2.3倍,精度高1.2%。在COCO目标检测任务中,也比MobileNetv1,v2有更优的mAP。

特点

  • Depthwise Convolution(深度卷积):模型使用更多 5x5 depthwise convolutions。
  • Depthwise Separable Convolution(深度可分离卷积):对于 depthwise separable convolution, 一个 5x5 卷积核比两个 3x3 卷积核更高效。
  • Inverted Residual Block(倒残差结构):深度卷积核的参数较多为0,也就是其卷积核没有发挥提取特征作用,MobileNetv1作者发现先通过1*1卷积将维度上升,再使用深度卷积,深度卷积的输入输出通道数更高,就能够提取更多的信息。
  • SEnet: 通过网络根据loss去学习特征权重,使得有效的feature map权重大,无效或效果小的feature map权重小的方式训练模型达到更好的结果。
  • Bottleneck block: 降低参数量,许多轻量级网络都有使用。

创新点:

不对创新点的具体做法进行深究,只知道他们是做啥的就行

  1. NAS(neural architecture search):

    用一个强化学习来搜索一个深度卷积神经网络,但主要优化目标有两个,识别准确率和 CPU 运算延迟。

  2. Actorized Hierarchical Search Space:

    一种新颖的分解式层次搜索空间,将一个CNN模型分解为不同的块,然后针对每个块搜索操作和块与块的连接关系,因此允许不同块有不同的层结构。很多轻量化模型重复 block 架构,只改变滤波器尺寸和空间维度。论文提出的层级搜索空间允许模型的各个 block 包括不同的卷积层。一个块i的子搜索空间由以下选择组成:

  • 卷积操作ConvOp:常规卷积(conv)、深度卷积(dconv)和移动倒置瓶颈卷积;

  • 卷积核的kernel size:3×3,5×5;

  • Squeeze-and-Excitation ratio:0,0.25;

  • Skip操作SkipOp:池化,恒等残差块、no skip;

  • 输出的filter;

  • 每个块包含的层数

网络结构

MnasNet

下图为搜索得到的Baseline以及5种baseblock,其中有两种block与MobileNetv1&v2中的block相同,分别为深度可分离卷积(f)和倒残差结构(d)。MBConv 表示 mobile inverted bottleneck conv,DwiseConv 表示 depthwise conv,3x3/5x5 表示kernel_size, BN is 批标准化, HxWxF
表示tensor shape (height, width, depth), and ×1/2/3/4 表示block 重复堆叠次数。

在这里插入图片描述
注意:

  • 当 MBConv 模块是第一次出现时,其中 DwiseConv 的步长可以是任意的(通常是 1 或 2),但后面重复该模块时步长必须设为1。
  • 和 MobileNet V2 不同的是,每个 MBConv 模块中的第二个 Conv 1x1 中的卷积核个数并不需要等于输入的通道数,从(a) 图中也能看出这一点。
  • 和 MobileNet V2 一样,Mnasnet 用的激活函数也是 ReLU6(除了之后提及的 SE 模块),且 MBConv 模块中的第二个 Conv 1x1 之后不设置激活函数。

含有 SE 模块的 Mnasnet 结构

在这里插入图片描述

SEnet

在这里插入图片描述
MnasNet block中加入了SEnet(Squeeze and excitation networks), Squeeze-and-Excitation Networks(简称 SENet)是 Momenta 提出的新的网络结构,利用SENet,一举取得最后一届 ImageNet 2017 竞赛 Image Classification 任务的冠军,在ImageNet数据集上将top-5 error降低到2.251%,原先的最好成绩是2.991%。Sequeeze-and-Excitation(SE) block并不是一个完整的网络结构,而是一个子结构,可以嵌到其他分类或检测模型中。其作用是:

Sequeeze: 顺着空间维度进行特征压缩,将(HxWxC)的特征图压缩成(1x1xC)的实数序列。
每个实数都具有HxW的全局感受野,具体做法是求全局均值池化(GlobalAveragePool)。
在这里插入图片描述

Excitation: 基于特征通道间的相关性,每个特征通道生成一个权重,用来代表特征通道的重要程度。Excitation部分是用2个全连接来实现 ,第一个全连接把C个通道压缩成了C/r个通道来降低计算量,第二个全连接再恢复回C个通道,r是指压缩的比例。

Reweight: 将Excitation输出的重要性权重加权相乘到特征层,完成通道重要性标定。

如下图所示,将senet插入到InceptionNet和ResNet block中。
在这里插入图片描述

代码

在这里插入代码片

参考

https://arxiv.org/abs/1807.11626
https://zhuanlan.zhihu.com/p/42474017

https://www.zhihu.com/question/287988785/answer/469932620
https://zhuanlan.zhihu.com/p/70703846
https://blog.csdn.net/TheDayIn_CSDN/article/details/91411511
https://blog.csdn.net/qq_38156104/article/details/107585874
https://blog.csdn.net/qq_36758914/article/details/106918983

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

界面控件DevExpress WPF的主题设计器,可轻松完成应用主题研发

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF的The…

一文详解|高校到底如何开展数据分类分级?

数据安全是高校的生命线,在数据安全合规要求不断升级的大背景下,加强数据有效保护,确保数据安全共享应用,已成为高校信息化建设的前线。 安全高楼平地起,作为数据安全建设的基础工作,通过数据分类分级&…

1541_AURIX_TriCore内核架构_内核调试控制器CDC

全部学习汇总: GitHub - GreyZhang/g_tricore_architecture: some learning note about tricore architecture. 这一份笔记可能会是我近段时间来最后的一份内核学习笔记了。我看了下内核手册分为上下两部分,而下卷主要的内容其实是讲解指令集&#xff0c…

如何用CSS画一个三角形?

hello,大家好,最近在看前端的八股,里面有这样一道题,如何用CSS画出三角形?我想以这个题为例,仔细讲一下这个题的技巧,以及对这道题拓展一下,即如何画出圆形和椭圆形? 首…

GFS分布式

GFS是什么? 1.1 简单介绍 这个问题说大也大,说小也小。GFS是Google File System的缩写,字面意义上就是Google的文件系统,技术层面上来讲,GFS是Google在2003年前后创建的可扩展分布式文件系统 ,用来满足 Goo…

SpringBoot 接收客户端提交数据/参数会使用到相关注解

目录 一.基本介绍 二.接收参数相关注解应用实例 1.需求: 2.应用实例演示 2.1演示PathVariable 使用 2.2.演示RequestHeader 使用 2.3演示RequestParam 使用 2.4演示CookieValue 使用 2.5演示RequestBody 使用 2.6演示RequestAttribute,SessionAttribute 使…

C语言基础知识

目录 第一章 C语言概述 第二章 数据类型 运算符 表达式 第三章 简单的C程序设计 第四章 选择循环结构 第五章 数组 ​第六章 函数 第七章 编译预处理 第八章 指针 第九章 结构体与共用体 第一章 C语言概述 C语言的特点: 语言简洁、紧凑;使用…

安卓实训作孽之Linux命令手册

文章目录前言演示效果项目地址实现UI进度条实现读取文件获取路径进度条刷新总结前言 开局之前先吐槽一句,NC学校,以及NC老师,还要搞两个作品,上午上课下午实训真牛皮(XS)。好了废话不多说我们开始吧&#…

进阶自动化测试,你一定要知道的...

自动化测试指软件测试的自动化,在预设状态下运行应用程序或系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化测试框架一般可以分为两个层次,上层是管理整个自动化测试的开发&a…

[Spring]第二篇:IOC控制反转

简单的说就是,创建对象的权利,或者是控制的位置,由JAVA代码转移到spring容器,由spring的容器控制对象的创建,就是控制反转. spring创建对象时,会读取配置文件,配置文件中主要配置接口和实现类的关系,每个接口对相应一个实现类,使用<bean>标签配置,<bean中的id可以随便…

微软S2C2F框架已被OpenSSF开源安全体系采用

近日&#xff0c;微软发布“安全供应链消费框架(Secure Supply Chain Consumption Framework&#xff0c;简称S2C2F)”1.1版本。该框架已被OpenSSF供应链完整性工作组采用。至此&#xff0c;OpenSSF开源软件评价相关的项目和指南已覆盖使用安全、关键性、基础设施安全、漏洞披露…

机器人导航必备的栅格地图数学模型及使用

机器人导航必备的栅格地图数学模型及使用占据栅格地图&#xff08;Occupancy Grid Map&#xff09;占用栅格地图基础概念占据栅格地图的数学模型ROS中使用OccupancyGrid占据栅格地图&#xff08;Occupancy Grid Map&#xff09; 占用栅格地图基础概念 上图就是一个ROS中的占据…

复旦大学-华盛顿大学EMBA项目位列全球第9,学术研究连续3年亚洲第一

2022年10月17日&#xff0c;英国《金融时报》&#xff08;FT&#xff09;发布全球EMBA项目排名&#xff0c;复旦大学-华盛顿大学EMBA项目位列全球第9位&#xff0c;学术研究连续3年亚洲第一&#xff0c;毕业生薪酬水平全球第六。    复旦大学-华盛顿大学EMBA项目是中国大陆…

JavaWeb三大组件之Filter

目录 1、Filter概述 2、Filter快速入门 2.1、开发步骤 2.2、代码演示 3、Filter执行流程​编辑 4、Filter拦截路径 5、过滤器链 5.1、概述 5.2、代码演示 5.3、问题 6、案例 6.1、需求 6.2、分析 6.3、代码实现 6.3.1、创建Filter 6.3.2、编写逻辑代码 6.3.3、…

SuperMap GIS管线数据处理QA

一、数据简介 传统的以二维平面展现网络数据的方式&#xff0c;在一定程度上限制了信息的表达&#xff0c;尤其是在复杂的空间位置关系上。三维网络是对现实中的网络的真实模拟&#xff0c;而非抽象模拟&#xff0c;因此能够全方位的展现信息。   例如&#xff0c;多层结构的…

python期末复习案例

一.条件判断 1. 判断一个数能否同时被3和7整除 and 两者都要为真 2.判断一个数能同时被3或者7整除 但不能同时被3和7整除 ★要使用not 3.输入年份&#xff0c;看是否为闰年 闰年条件&#xff1a;能被4整除但不能被100整除&#xff0c;或者能被四百整除 定义两个变量 保存一个…

leetcode 464. 我能赢吗 官方代码的一步步演进

这里写自定义目录标题题目示例解题优化1 记忆化搜索优化2&#xff1a;使用二进制代替choosable_list计算复杂性题目 在 “100 game” 这个游戏中&#xff0c;两名玩家轮流选择从 1 到 10 的任意整数&#xff0c;累计整数和&#xff0c;先使得累计整数和 达到或超过 100 的玩家…

Kafka - 09 Kafka副本 | Leader选举流程 | Follower故障 | Leader故障

文章目录1. 副本基本信息2. Leader选举流程3. Follower故障4. Leader故障1. 副本基本信息 1&#xff09;Kafka 副本作用&#xff1a;提高数据可靠性。 2&#xff09;Kafka 默认副本 1 个&#xff0c;生产环境一般配置为 2 个&#xff0c;保证数据可靠性&#xff1b;太多副本会…

深度学习网络模型——DenseNet模型详解与代码复现

深度学习网络模型——DenseNet模型详解与代码复现1、DenseNet概述2、DenseNet网络结构1、DenseNet中的DenseBlock模块2、DenseNet中的Transition模块3、DenseNet网络结构参数设置4、实验结果对比1、DenseNet概述 2、DenseNet网络结构 1、DenseNet中的DenseBlock模块 2、DenseNe…

内网穿透:针对小白的VSCode+云服务器+本地Ubuntu搭建GPU云服务器

前言 自己实验室的情况&#xff1a; 实验室拥有自己的GPU集群、工作站使用仅限于线下或者远程向日葵(不稳定、速度慢)拥有自己的廉价cpu轻量云服务器&#xff08;阿里云服务器(2G2*cpu)&#xff0c;大概40左右一年&#xff09; 平时出差、在宿舍等需要远程操作&#xff0c;向…