卷积神经网络中 6 种经典卷积操作

深度学习的模型大致可以分为两类,一类是卷积神经网络,另外一类循环神经网络,在计算机视觉领域应用最多的就是卷积神经网络(CNN)。CNN在图像分类、对象检测、语义分割等经典的视觉任务中表现出色,因此也早就有一大批各种各样的经典卷积神经网络模型与一些鬼斧神工的卷积操作,今天小编就斗胆总结一波这些经典的卷积操作都有哪些?(不完全版本,欢迎补充….)

01 正常的卷积与参数

一个正常的图像卷积,其工作方式与原理如下图所示:

图片

图-1 (二维图像卷积)

图片

图-2 (三维图像卷积)

可以看出其基本的参数有:

卷积核大小(Convolution filter)

图-1中卷积核大小为ksize x ksize=3x3,步长(stride) 这里指每次移动的像素距离,步长为1,表示卷积核每次移动一个像素距离,依此类推。

填充(padding)

表示卷积核对边缘的处理方式,常见的填充方式有两种:same与valid,其中same表示根据卷积核大小填充ksize/2 。当卷积核为3x3时,填充1个像素;5x5时,填充两个像素,依此类推。Valid表示不填充。输入与输出通道数目从图二可以看出输入的6x6x3的图像数据,有三个通道输入,通过两个4x4x3的filter之后输出的是3x3x2的图像数据,有两个通道输出。

02 空洞卷积(Dilated Convolution)

看到这些卷积与参数,第一个变化就出现了,通过改变卷积核大小,担心不改变参数数目,实现了卷积核的多尺度,从而实现了对特征多尺度提取,它就是空洞卷积。图示如下:

图片

在保持卷积核参数不变的情况下,扩大了感受野区域。空洞卷积在图像分类、对象检测、语义分割网络模型中均有应用。

03 转置卷积(transposed convolution)

转置卷积又被称为反卷积,此反卷积跟不同于图像处理中的反模糊卷积。2D转置卷积的计算基本原理如下图所示:

图片

举例说明,卷积操作为:

图片

转置卷积操作为:

图片

最终图示如下:

图片

04 1x1卷积

1x1卷积在输出指定通道数目特征图,升降卷积神经网络的通道数上面有特殊用途,在Inception系列网络中开始大量应用,在网络模型结构设计有重要作用,Faster-RCNN中RPN网络就是使用1x1实现指定通道输出的典范。1x1卷积图示如下:

图片

1x1 Conv

图片

图片

1x1卷积的好处是可以升降维度通道数目,同时它还是一个channel-wise的卷积操作,可以降低卷积核的参数数目,减小模型规模。此外1x1卷积还有一个很高级隐藏应用技巧就是做全局深度池化操作,实现基于通道数的池化操作。

图片

05 组合卷积

组合卷积最早见AlexNet模型的相关论文,集大成者是ShuffleNet网络,关于组合卷积跟正常卷积的区别,见下图:

图片

组合卷积主要是基于filter分组,实现分组卷积,正常的卷积如下:

图片

分组filter之后的分组卷积:

图片

分组卷积的优势是可以更好的结构化学习,克服过拟合,减少参数、产生类似正则化效果,从而提升整个网络的精度与效率。

06 深度可分离卷积

深度可分离卷积结构是构建轻量化网络模型的利器之一,最早出现在相关的模型结构是以MobileNet为代表的轻量级网络模型,应用于图像分类、对象检测、语义分割当场景下。深度可分类卷积的图示如下:

图片

深度可分离卷积可以大幅减少卷积神经网络的参数,因此它在模型层数不变而模型总参数量却可以大幅下降而精度只会稍微损失,因此是模型小型化设计与轻量化模型推理的很好骨干网络。

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

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

相关文章

二进制搭建及高可用 Kubernetes v1.20

目录 一、实验规划: 二、操作系统初始化配置: 1. 关闭防火墙 selinux: 2. 关闭swap分区: 3. 根据规划设置主机名: 4. 所有主机添加hosts: 5. 调整内核参数: 6. 时间同步: 三、部署 etcd 集群&#xff1a…

PyCharm+Miniconda3安装配置教程

PyCharm是Python著名的Python集成开发环境(IDE) conda有Miniconda和Anaconda,前者应该是类似最小化版本,后者可能是功能更为强大的版本,我们这里安装Miniconda 按官方文档的说法conda相当于pip与virtualenv的结合&am…

小红书达人投放比例是多少合适?品牌方必看

品牌做小红书种草推广想要产生更好的效果,是需要素人和达人按照一定比例去进行投放的,素人铺量可以让产品产生迅速曝光的效果,少量达人投放可以让产品产生更好的转化效果。 小红书达人投放具有较高的互动性和口碑传播效果。达人通过自身的影…

HTML使用canvas绘制海报(网络图片)

生成前&#xff1a; 生成后&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>媒体参会嘉宾邀请函生成链接</title><link rel"stylesheet" href"https://cdn.jsdelivr.net/npm/vant2.10…

安装 Node.js

首先&#xff0c;我们需要安装 Node.js 和相关的库&#xff0c;如 request 和 cheerio。 npm install request cheerio然后&#xff0c;我们可以使用以下代码来爬取网页内容&#xff1a; const request require(request); const cheerio require(cheerio);request({url: js…

6.ELK之Elasticsearch嵌套(Nested)类型

0、前言 在Elasticsearch实际应用中经常会遇到嵌套文档的情况&#xff0c;而且会有“对象数组彼此独立地进行索引和查询的诉求”。在ES中这种嵌套文档称为父子文档&#xff0c;父子文档“彼此独立地进行查询”至少有以下两种方式&#xff1a; 1&#xff09;父子文档。在ES的5.…

react组件间通信之context

一般用于【祖组件】与【后代组件】间通信 案例&#xff1a; A,B,C,D四个组件的关系分别为&#xff1a;爷爷&#xff0c;爸爸&#xff0c;儿子&#xff0c;孙子 从A向C传递参数&#xff1a;C组件为类式组件 从A向D传递参数&#xff1a;D组件为函数组件 import React, { Componen…

22款奔驰GLS450升级中规主机 实现导航地图 中文您好奔驰

很多平行进口的奔驰GLS都有这么一个问题&#xff0c;原车的地图在国内定位不了&#xff0c;语音交互功能也识别不了中文&#xff0c;原厂记录仪也减少了&#xff0c;使用起来也是很不方便的。星骏汇小许 Xjh15863 其实很简单&#xff0c;我们只需要更换一台中规的新主机就可以实…

排序算法之-选择

算法原理 在未排序的数列中找出最大&#xff08;或最小&#xff09;的元素&#xff0c;然后将其存入到已排序的数列起始位置&#xff0c;紧接着在剩余的未排序数列中继续查找最大&#xff08;或最小&#xff09;的元素&#xff0c;并将其放入到已排序的数列末尾&#xff0c;依…

SLAM从入门到精通(光源的控制)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说过&#xff0c;图像在二维码、道路检测、故障物检测方面都有很重要的作用。但是&#xff0c;这里面就有一个前提&#xff0c;那就是图像…

音乐免费下载mp3格式+音频格式转换+剪辑音频+合并音频教程

1.在qq音乐网页版搜索想要的歌曲 qq音乐网站&#xff1a;https://y.qq.com/ 如果你是vip可以直接下载vip的歌曲&#xff0c;如果不是选择不是vip的歌曲进行第一步的操作 2.点击播放进入页面后F12拿到音频地址 然后双击src里面的音频地址复制 网页新标签打开赋值的这个链接&a…

『 MySQL数据库 』数据库基础之表的基本操作

文章目录 创建表&#x1f5e1;查看表&#x1f5e1;✒ 查看表内所有信息(描述\表结构等)✒ 根据条件查看表内数据✒ 查看表的具体详细信息: 修改表&#x1f5e1;✒ 修改表名:✒ 修改表的存储引擎、编码集(字符集和校验集):✒ 表内插入数据:insert into✒ 在表中新添一个字段(列)…

Python基础入门----Python文件操作:文件读写、文件对象方法、with语句

文章目录 文件读写模式文件对象方法with语句在Python中,文件操作是一项基本技能,它允许你读写文件,并与文件系统进行交互。这篇文章将详细介绍如何使用Python进行文件读写,涉及不同的文件模式,文件对象的方法,以及如何使用with语句来管理文件资源。 文件读写模式 在Pyt…

11-2 mybatis入门细节

mybatis Mybatis 单表CURD细节 ${} 与#{} 区别(面试题) ${} 拼接sql 造成sql注入 #{} 使用?占位 如果作为值, 推荐使用#{} ${} 实现一些动态排序,使用 #{column} select * from tb_userinfo order by ? desc column: id 赋值 sql: select * from tb_userinfo order by id …

MFC串口通信(SerialPort)

目录 1、SerialPort类的介绍和使用&#xff1a; &#xff08;1&#xff09;、SerialPort类的功能介绍 &#xff08;2&#xff09;、SerialPort类提供接口函数的介绍 1&#xff09;、InitPort函数 2&#xff09;、控制串口监视线程函数 3&#xff09;、获取事件&#xff0c…

基于JavaWeb+SpringBoot+微信小程序的酒店商品配送平台系统的设计和实现

基于JavaWebSpringBoot微信小程序的酒店商品配送平台系统的设计和实现 源码传送入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码传送入口 前言 本章内容概括了基于微信小程序的酒店商品配送平台的可行性分析、系统功…

Linux安装Python3.10与部署flask项目实战详细记录

java开发新手入门Python,创建flask后端服务对外提供访问.记录一下在阿里云服务器部署flask项目的操作过程,简单介绍一下使用的阿里云服务器系统配置:ubantu16.04,其他内核版本操作部分命令会有所区别,下面开始详细操作过程! 1.pycharm创建flask项目并打包 2.Python3.…

Apache Storm 2.5.0 单机安装与配置

1、下载storm 2.5.0 2、需要安装python3&#xff0c;并且设置python3的环境变量 3、修改storm.yaml配置 storm.zookeeper.servers:- "node4" # - "server2" # # nimbus.seeds: ["host1", "host2", "host3"] # nimbus…

javaSE学习笔记(五)集合框架-Collection,List,Set,Map,HashMap,Hashtable,ConcurrentHashMap

目录 四、集合框架 1.集合概述 集合的作用 集合和数组的区别 集合继承体系 数组和链表 数组集合 链表集合 2.Collection 方法 集合遍历 并发修改异常 3.List List集合的特有功能&#xff08;核心是索引&#xff09; 集合遍历 并发修改异常产生解决方案ListIterato…

ubuntu下Anaconda环境安装GPU的pytorch(docker镜像)

实验室需要给每个人分配docker的container环境&#xff0c;为了节省系统的空间&#xff0c;打算把anaconda和深度学习的开发环境配置好拉取镜像以省时间。 基础环境配置 apt更新了清华源 安装了基础环境 gcc vim Linux文本编辑库 openssh-server ssh远程连接库 net-tools 包含…
最新文章