【论文笔记合集】卷积神经网络之深度可分离卷积(Depthwise Separable Convolution)

在这里插入图片描述
本文作者: slience_me


我看的论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

内容

1. 标准卷积

假设输入为DF×DF×M,输出为输入为DF×DF×N,卷积核为DK×DK×M,共有N个卷积核进行卷积操作
下图为标准的卷积过程,每个卷积核对输入的向量进行卷积操作,得到一个特征映射,共有N个卷积核进行卷积操作,则可以得到N个特征映射,即DK×DK×N
在这里插入图片描述
示意图如下:一般卷积
在这里插入图片描述

2. 深度可分离卷积(Depthwise Separable Convolution)

2.1 Depthwise Convolution

对于深度可分离卷积而言,

进行逐通道卷积,Depthwise Convolution的一个卷积核负责一个通道,一个通道只被一个卷积核卷积

根据我的第二个图可知,每一个卷积核只负责一个通道的卷积操作,共有M个通道,则需要M个卷积核,对每一个通道进行卷积操作。
详细过程描述为:

  • 使用尺寸为DK×DK×1×M的宽度卷积核(M个尺寸为DK×DK×1的卷积核),对每个通道的特征进行卷积
  • 得到M个尺寸为DF×DF的特征映射
    在这里插入图片描述
    在这里插入图片描述

2.2 Pointwise Convolution

逐点卷积,采用了1×1×M的卷积核对2.1中深度卷积的结果进行逐点卷积操作,详细来说:

  • 使用尺寸为1×1×M×N的1×1卷积核(N个尺寸为1×1 ×M的卷积核),对上一步得到的特征进行1×1卷积,每个卷积核对M个特征相同位置上的卷积结果进行整合,即上一步的map在深度方向上进行加权组合
  • 得到一个DF×DF×1的结果
  • N个1×1卷积得到尺寸为DF×DF×N的输出结果

在这里插入图片描述
在这里插入图片描述

优点

标准卷积的计算成本为:
在这里插入图片描述

深度可分离卷积的计算成本为:
在这里插入图片描述
通过该操作,相同的输入,Depthwise Separable Convolution的参数个数是常规卷积的约1/N+1/D2K, 计算量可以大大减少,提高性能。因此,在参数的数量相同的前提下,采用Depthwise Separable Convolution的神经网络层数可以做的更深。

一些研究从增加网络整体非线性表达能力的角度出发,认为在Depthwise Convolution之后加入激活函数和BatchNorm有助于提高网络的非线性表达能力,进而使网络有更强大的能力去拟合更加复杂的函数。但从近期的一些研究结果来看,在Depthwise Convolution之后不加入激活函数和BatchNorm是更优的选择,因此这也逐步成为了使用DSC的一种最佳实践。
简单总结一下,DSC作为普通卷积的一种替代品,它的最大优点是计算效率非常高。因此使用DSC构建轻量级模型是当下非常常见的做法。不过DSC的这种高效性是以低精度作为代价的。目前看来,设计高效率、高精度的DSC变体模块仍然是非常热点的研究方向之一

在这里插入图片描述


参考内容如下:
①: 深度可分离卷积
②:卷积神经网络之深度可分离卷积(Depthwise Separable Convolution)

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

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

相关文章

人机对话:程序设计,学哪种语言好?

人机对话:程序设计,学哪种语言好? 程序设计,学哪种语言好?学习目的:职业发展:个人兴趣: go语言怎么样?优点:缺点: 要开发手机APP,还需…

LeetCode刷题---随机链表的复制

解题思路: 使用哈希表来解决该问题 因为题中要求是深拷贝 首先对原链表遍历,将原链表每个节点和新链表每个节点形成对应关系,存入到哈希表中,key为原链表的节点,value为新链表的节点。 之后重置辅助链表指向原链表头节…

墨刀原型-实现轮播图功能

在墨刀中实现轮播图效果,可以按照以下步骤进行操作: 1.添加轮播图组件:在墨刀的组件面板中,找到轮播图组件并将其拖拽到画布上。 2.上传轮播图:在右侧的属性面板中,你可以上传你的轮播图图片。点击“”按钮…

动态pv(nfs方式挂载)

1、定义 发布pvc之后可以生成pv,还可以在共享服务器上直接生成挂载目录 pvc直接绑定和使用pv 2、动态pv依赖两个组件 (1)provisioner卷插件:k8s本身支持的动态pv创建不包括nfs,需要声明和安装一个外部插件provisio…

NET Core发布 HTTP Error 500.31 - Failed to load ASP.NET Core runtime

记录一下踩过的坑: 首先,不论是500.31还是500.30 ,首先确保安装了三个文件 1.NET Core RunTime 2.NET SDK 3.NET Hosting 其次,确保三个文件的版本一致,如下: 要装就统一装同一个大版本,不要东…

Linux第28步_编译“修改正点原子TF-A源码中的Makefile并编译生成新的TF-A 固件”

了解学习内容: 1)、正点原子STM32MP157开发板使用的主控型号是STM32MP157DAA1; 2)、“linux /atk-mp1/atk-mp1/alientek_tf-a/tf-a-stm32mp-2.2.r1”目录下的文件是正点原子STM32MP157D开发板的“TF-A源码”。 3)、“linux /atk-mp1/atk-mp1/alientek…

字符串匹配

模板: KMP: 细节在代码中 看不懂的可以参照:如何更好地理解和掌握 KMP 算法? - 阮行止的回答 - 知乎 https://www.zhihu.com/question/21923021/answer/1032665486 package StringMatch.KMP;import java.util.ArrayList; import java.util.List;publ…

k8s的配置资源管理

Secret Secret用来保存密码、token密钥以及一些敏感的k8s资源。这类数据虽然可以存放在镜像当中,但是放在secret当中可以更方便控制。减少暴露的风险。 Secret的作用:保存加密的信息 Secret的类型 docker-registry()主要用于存储docker仓库的认证信息…

后台生成随机验证码验证登录

web get请求获取图片 <div class"p2"><img id"imgId" src"/get/code"><a href"#">看不清&#xff0c;换一张</a> </div> 后台代码: /*获取动态验证码*/ ResponseBody RequestMapping(value "/…

【MATLAB源码-第113期】基于matlab的孔雀优化算法(POA)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 POA&#xff08;孔雀优化算法&#xff09;是一种基于孔雀羽毛开屏行为启发的优化算法。这种算法模仿孔雀通过展开其色彩斑斓的尾羽来吸引雌性的自然行为。在算法中&#xff0c;每个孔雀代表一个潜在的解决方案&#xff0c;而…

人工智能专业必须需要考哪些证书呢?

我们来看看2024年人工智能专业的企业和个人都在紧张报考的两项AI认证证书报考&#xff1a; 为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国务院印发《关于“十四五”数字经济发展规划》等有关工作的部署要求&#xff0c;深入实施人才强国战略和创新驱…

程序员的职业生涯

程序员的职业生涯一般会经历以下几个阶段&#xff1a; 初级阶段&#xff1a;在这个阶段&#xff0c;程序员通常刚从大学毕业&#xff0c;或者只拥有很少的工作经验。他们开始学习如何编写代码&#xff0c;理解编程语言和开发工具&#xff0c;并熟悉软件开发流程。这个阶段的程…

Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)

专栏系列&#xff1a;Django学习教程 前言 highchart&#xff0c;国外。 echarts&#xff0c;国内。 本项目集成 hightchart和echarts图表库实现数据统计功能。 包括&#xff1a;折线图&#xff0c;柱状图&#xff0c;饼图和数据集图。 效果图 echats Highcharts 源代码…

java 判断中文英文正则表达式 排除 除了中文以外的特殊字符,排除除了英文以外的特殊字符

boolean containsChinese Pattern.matches(".*[\\u4e00-\\u9fa5].*", names);//containsChinese&#xff1a; true 包含中文就直接把其他特殊字符英文去掉if (containsChinese) {names names.replaceAll("[^\\u4E00-\\u9FA5]", "");//使用正则…

odoo17 | 编码规范大全

编码规范 本页介绍Odoo编码指南。这些旨在改善 Odoo应用程序代码的质量。事实上&#xff0c;适当的代码可以提高可读性&#xff0c;简化 维护&#xff0c;帮助调试&#xff0c;降低复杂性并提高可靠性。 这些准则应适用于每个新模块和所有新开发。 警告 在稳定版本中修改现有…

程序员如何保持竞争力

在程序员的职业生涯中&#xff0c;保持竞争力是非常重要的&#xff0c;因为技术行业不断发展和变化。以下是一些建议&#xff0c;可以帮助程序员保持竞争力&#xff1a; 持续学习新技术和编程语言&#xff1a;技术行业的发展非常快&#xff0c;新的编程语言和技术不断涌现。作为…

易点易动设备管理系统:提升企业设备能耗管理效率的不二之选

在当前环保意识日益增强的社会背景下&#xff0c;企业对设备能耗管理的重视程度不断提升。有效的能耗管理不仅可以减少企业的能源消耗和环境污染&#xff0c;还能降低生产成本和提升竞争力。为了帮助企业实现高效的设备能耗管理&#xff0c;易点易动设备管理系统应运而生。本文…

高级分布式系统-第15讲 分布式机器学习--概念与学习框架

高级分布式系统汇总&#xff1a;高级分布式系统目录汇总-CSDN博客 分布式机器学习的概念 人工智能蓬勃发展的原因&#xff1a;“大” 大数据&#xff1a;为人工智能技术的发展奠定了坚实的物质基础。 大规模机器学习模型&#xff1a;具备超强的表达能力&#xff0c;可以解决…

通过IDE和jar包运行时加载json配置文件

程序中使用了json配置文件&#xff0c;位置在$rootPath/src/main/resources/config.json, 调试时使用IDE&#xff0c;但运行时使用Jar包&#xff0c;加载config.json配置文件的代码如下&#xff1a; public ConfigParser(String configFileName) throws IOException {try{Inp…

安全运维:cmd命令大全(108个)

1、calc&#xff1a;启动计算器 2、appwiz.cpl&#xff1a;程序和功能 3、certmgr.msc&#xff1a;证书管理实用程序 4、charmap&#xff1a;启动字符映射表 5、chkdsk.exe&#xff1a;Chkdsk磁盘检查(管理员身份运行命令提示符) 6、cleanmgr: 打开磁盘清理工具 7、clico…