卷积的意义及其派生(二)

 接上一篇。因为还有很多种卷积的变形,并且应用广泛,所以继续介绍。

Transposed Convolution

也叫反卷积或者转置卷积。

一般卷积之后尺寸都会变小,采取一些padding,空洞卷积等使得尺寸保持不变就已经好不容易了,但转置卷积却可以实现尺寸变大。在了解转置卷积的原理之前,必须先了解一点普通卷积的实现。

普通卷积当然可以滑动窗口的方法实现,但这样训练太低。更常用的做法是im2col,即把图像和滤波器都转换为向量:

这里的关键是滤波器的im2col。先初始化一个和图像大小相同的空矩阵,按照滤波器可能出现的位置进行系数填充。这样得到的每个列向量表示一个滤波器的位置。然后卷积就可以使用矩阵乘积来实现:

如果用矩阵运算表示卷积这个过程,Y=CX,Y是维度更小的输出,X的维度更大。那么一定存在一个矩阵B可以恢复出X大小的尺寸,YB=X,B的维度就是C的转置。

在实现上,只需要对称调用con2d和ConvTranspose2d,使用相同的参数,就可以实现尺寸的保持:

原始32,con2d(kernel_size=18, padding=3, stride=1),输出尺寸为32+3*2-(18-1)=21,

尺寸21的输入再进ConvTranspose2d(kernel_size=18, padding=3, stride=1),输出尺寸21+(18-1-3)*2-(18-1)=32.

反卷积可以被应用在CNN的解释和语义分割上。

 Deconvolution and Checkerboard Artifacts

反卷积输出尺寸计算公式 - 知乎

Depthwise Convolution

normal convolutionDepthwise convolution
    
    
每个filter的通道数与输入图的通道数一样,对应通道做卷积,然后再合并,每个filter得到一个单通道输出

filter个数与输入图的通道数一样,每个filter都只有一个通道,只负责输入图的一个通道。

Depthwise convolution不改变通道,每个filter与输入图的通道一一对应,这也是称为通道分离卷积的原因。
 

https://towardsdatascience.com/a-basic-introduction-to-separable-convolutions-b99ec3102728

https://zhuanlan.zhihu.com/p/453434386

Pointwise Convolution

Depthwise convolution没有考虑通道直接的信息交流,也导致输出层的通道数与输入绑定。这时上一篇讲到的1x1卷积就派上了用场。

Pointwise Convolution就是用通道数等于Depthwise convolution输出层的1x1卷积,压缩成一个单通道输出。而多个这样的1x1卷积就可以得到想要的输出。

  

depthwise separable convolution

depthwise separable convolution由谷歌的Xception提出,应用在MobileNets。

传统卷积的意义一个是滤波器提取特征,一个是不同通道的特征融合,深度分离卷积就是将这两个内容分成两步计算,分别使用Depthwise convolution和Pointwise Convolution实现。

深度分离卷积相比于普通卷积最大的优点就是它的计算量更少。

原始卷积的计算量,与特征图尺寸成平方的关系,与卷积核尺寸也成平方的尺寸,与通道数,卷积核数目成正比,所以传统卷积的运算量是Df*Df*Dk*Dk*M*N,而depthwise每个卷积核只与一个通道产生关系,所以和卷积核数目无关,运算量是Df*Df*Dk*Dk*M,在pointwise阶段,原理和传统卷积一样,只不过卷积核尺寸变为1x1,所以运算量是Df*Df*1*1*M*N。

使用深度可分离的耗时是标准卷积的(1/N+1/Dk^2),所以一般卷积核尺寸取3x3时,时间可以缩短为用来的1/8~1/9.

但是深度分离可卷积不会出现在网络的第一层,第一层依然是传统的卷积层。


reference:

轻量级神经网络“巡礼”(二)—— MobileNet,从V1到V3 - 知乎

轻量级CNN之MobileNet系列 - 知乎

CNN模型之MobileNet - 知乎

反卷积原理不可多得的好文_区块链斜杠青年(爱踢门)-CSDN博客

GitHub - vdumoulin/conv_arithmetic: A technical report on convolution arithmetic in the context of deep learning

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

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

相关文章

vite tsx项目的element plus集成 - 按需引入踩坑

前面我们进行了开源组件的自研,很多组件可直接用现成的开源组件库,并不需要自己重复造轮子,为此我们讲如何在当前vite vitepress tsx技术整合的项目中实现element plus组件的按需引入,同时解决遇到的一些坑。 安装Element Plus…

01 Python环境安装

1.进入官网选择合适的版本,进行下载。Welcome to Python.org,提供了支持不同操作系统的安装包,目前最新版本为Python3.12,但在学习阶段一般不推荐大家使用最新版本的软件,因为对于其他软件需要该环境时,还不…

C++之引用(详解,引用与指针的区别)

目录 1. 引⽤的概念和定义 2. 引⽤的特性 3. 引⽤的使⽤ 4. const引⽤ 5. 指针和引⽤的关系 1. 引⽤的概念和定义 引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名(相当于是给变量起了个外号),编译器不会为引⽤变量开辟内存空间,它…

九、【Python】基础 -【Python函数与类全解析】:掌握模块化编程的艺术

💡📚【Python函数与类全解析】:掌握模块化编程的艺术📚💡 在Python中,函数和类是构建可重用代码和组织程序逻辑的重要工具。下面我将分别介绍它们的基本使用方法,并提供一些具体的用例。 一、函…

视频平台麓战奥运经济,谁能接住这“破天的富贵”?

文丨郭梦仪 与巴黎奥运会炸裂开幕式的“松弛感”不同,赛场外的流量之争早已硝烟弥漫。 今年,腾讯、咪咕、快手、抖音与中央广播电视总台达成奥运转播版权合作,长短视频平台各占一半。 而今,获得转播权的视频平台们,…

【中项】系统集成项目管理工程师-第8章 信息安全工程-8.2信息安全系统

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…

哈希(模拟实现unordered系列容器)

目录 哈希表源代码哈希表模板参数的控制哈希表区分set与map的不同模板参数哈希节点定义的模板参数修改 提供仿函数,获取T类型数据当中的键值unordered_map的仿函数unordered_set的仿函数哈希表的模板参数增加 string类型无法取模问题哈希表的模板参数增加 哈希表默认…

探索天穹数仓自治能力的新实践

探索天穹数仓自治能力的新实践 随着业务和技术的发展,传统数仓模式向数智数仓模式演进,数据治理面临诸多挑战。自治平台采用双引擎策略,注重感知能力、观测能力、诊断能力和优化能力的建设,实现了对数据的精细化管理。例如&#x…

这本vue3编译原理开源电子书,初中级前端竟然都能看懂

前言 众所周知vue提供了很多黑魔法,比如单文件组件(SFC)、指令、宏函数、css scoped等。这些都是vue提供的开箱即用的功能,大家平时用这些黑魔法的时候有没有疑惑过一些疑问呢。 我们每天写的vue代码一般都是写在*.vue文件中,但是浏览器却只…

JavaSE面向对象进阶

static 介绍 static表示静态,是Java中的一个修饰符可以修饰成员方法、成员变量 被static修饰的成员变量,叫做静态变量被static修饰的成员方法,叫做静态方法 静态变量 特点:被该类所有对象共享 调用方式: 类名调用&am…

聚芯前行|美格智能亮相2024 ChinaJoy骁龙主题馆,展现数字娱乐的无限可能

7月26日,2024中国国际数码互动娱乐展览会(ChinaJoy)在上海新国际博览中心正式拉开帷幕。美格智能携手高通公司亮相骁龙主题馆,以5G-A毫米波MiFi解决方案及高算力AI模组,共同为广大玩家和粉丝打造了一个前沿技术赋能、充…

27-《木芙蓉》

木芙蓉 木芙蓉(Hibiscus mutabilis Linn.)又名芙蓉花、拒霜花、木莲、地芙蓉、华木,原产中国。其喜温暖、湿润环境,不耐寒,忌干旱,耐水湿。对土壤要求不高,瘠薄土地亦可生长。为锦葵科、木槿属落…

校园气象站

TH-XQ3校园气象站是一个用于测量和记录气象数据的设备,可以帮助学生和教师更好地了解校园的气候情况。以下是校园气象站的使用方法: 安装:校园气象站通常需要安装在一个开阔的区域,远离建筑物和树木等遮挡物。确保气象站稳固地安装…

中文网址导航模版HaoWa1.3.1/模版网站wordpress导航主题

HaoWa v1.3.1由挖主题开发的一款网址导航类主题。 HaoWA主题除主体导航列表外,对主题所需的小模块都进行了开放式的HTML编辑器形式的功能配置,同时预留出默认的代码结构,方便大家在现有的代码结构上进行功能调整。 同时加入了字体图标Font …

Bus Number

https://codeforces.com/problemset/problem/991/E 假想一下,如果我们知道m序列的长度是不是可以计算数量 这个好算,但是好像多了一点数,因为不能有前导零,所以我们要减去有前导零的部分 最后得到 那么我们只需要枚举数量即可&am…

【C#】 使用GDI+获取两个多边形区域相交、非相交区域

一、使用GDI获取两个多边形区域相交、非相交区域 在 C# 中使用 GDI(Graphics Device Interface Plus)处理图形时,你可以使用 System.Drawing 和 System.Drawing.Drawing2D 命名空间中的类来操作区域(Region)。下面是一…

Spark累加器(Accumulator)

1.累加器类型: 数值累加器:用于计算总和、计数等。布尔累加器:用于计算满足特定条件的次数。自定义累加器:允许定义复杂的聚合逻辑和数据结构。集合累加器:用于计算唯一元素的数量,处理去重操作。 在 Spar…

Study--Oracle-07-ASM常用操作(五)

一、向磁盘组添加磁盘 1、查看系统中可用的磁盘 set lines 150; col name for a35; col path for a35; select group_number,path, state, name, total_mb, free_mb from v$asm_disk; 2、磁盘组操作 创建磁盘组 create DISKGROUP DATADGV2 EXTERNAL REDUNDANCY DISK /dev/…

解决Qt3D程序场景中无法显示创建的立体图形?

有的新手在创建Qt3D程序时,因为不熟练,导致经常遇到无法显示3D图形的情况。 原因其实也简单,就是设置的摄像机的位置不对,或者压根没有设置摄像机。 // CameraQt3DRender::QCamera *cameraEntity view.camera();cameraEntity-&g…

Java二十三种设计模式-外观模式(9/23)

外观模式:简化复杂系统的统一接口 引言 外观模式(Facade Pattern)是一种结构型设计模式,它为子系统中的一组接口提供一个统一的高层接口。外观模式定义了一个可以与复杂子系统交互的简化接口,使得子系统更加易于使用…