卷积神经网络的改进 —— 分组卷积、DW 与 PW

DW卷积、PW卷积、转置卷积、膨胀卷积(空洞卷积)、可变形卷积一次看个够 DW卷积操作中,每一个卷积核是只负责一个通道的,这与普通卷积一个卷积核负责几个通道是不一样的。比如一个5*5*3的彩色图片作为输入,使用普通卷积那么卷积核就可以设置为3*3*n(n为输出通道数),而DW卷积则为3*3*3(卷积核的数量要与输入通道数量一致),所以一个卷积核只能负责一个通道。转置卷积也被人叫做反卷积或者逆卷积,其实正确的叫法就是转置卷积,并不是卷积之后通过转置卷积再得到原来的特征图,转置卷积所得到的上采样特征图中的数值与原特征图并不一样,所以反卷积或者逆卷积的叫法是不好的。 阅读详情
AI摘要

本文探讨了卷积神经网络的发展历程,包括分组卷积、深度分离卷积等技术的引入及其对网络性能的影响。文章还介绍了多种CNN模型的设计理念和技术细节。

1、普通卷积

在这里插入图片描述
对于一张5×5像素、三通道彩色输入图片(shape为5×5×3)。经过3×3卷积核的卷积层(假设输出通道数为4,则卷积核shape为3×3×3×4),最终输出4个Feature Map,如果有same padding则尺寸与输入层相同(5×5),如果没有则为尺寸变为3×3。
此时,卷积层共4个Filter,每个Filter包含了3个Kernel,每个Kernel的大小为3×3。因此卷积层的参数数量可以用如下公式来计算:
N_std = 4 × 3 × 3 × 3 = 108
运算量可以用如下公式来计算:
5 X 5 X 3 X 3 X 3 X 4 = 2700

2、分组卷积(group convolution )

在这里插入图片描述
将卷积的输入 feature map 进行分组组,每个卷积核也相应地分成组,在对应的组内分别做卷积,如上图所示。图中分组数为 g,每一组 feature map 只和对应的一组卷积核做卷积。每组卷积都生成一个feature map,共生成 g 个feature map。
在这里插入图片描述
在这里插入图片描述

我们用了同等的参数量运算量生成了 g 个 feature map。

所以 group conv 常用在轻量型高效网络中,因为它用少量的参数量和运算量就能生成大量的 feature map,大量的 feature map 意味着能够编码更多的信息!
从分组卷积的角度来看,分组数就像一个控制旋钮,最小值是1,此时的卷积就是普通卷积;最大值是输入 feature map 的通道数,此时的卷积就是 depthwise sepereable convolution,即深度分离卷积,又叫逐通道卷积。

分组卷积的用途

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

3、深度分离卷积(Depthwise Separable Convolution)

在这里插入图片描述
不同于常规卷积操作,Depthwise Convolution的一个卷积核负责一个通道,一个通道只被一个卷积核卷积。上面所提到的

深度可分离卷积&&组卷积 深度可分离卷积核组卷积记录 阅读详情

相关推荐

深度可分离卷积_轻量级卷积神经网络介绍

写在前面:上一篇我们谈到了目标检测中的性能评价指标,其中很重要的一项是速度指标,速度指标跟硬件,网络的参数,和你设计的算法有关,大型网络(例如Resnet152,Densenet)虽然性能优秀,但与之对应带来的是对设备的内存问题,和处理速度问题(具体见下面)。只有解决 CNN 效率问题,才能让 CNN 走出实验室,更广泛的应用于移动端。对于效率问题,通常的方法是进行模型压缩,即在已经训练好的模型上...

weixin_39951018的博客 1526

深度可分离卷积 Depthwise Seperable Convolution

前言 在原始图像卷积网络的基础上,经过不断的改进和优化,出现了如分组卷积(Group convolution)、空洞卷积(Dilated convolution 或 À trous),深度可分离卷积(Depthwise Seperable Convolution)等各式各样的卷积改进形式。 Depthwise(DW)卷积与Pointwise(PW)卷积,合起来被称作深度可分离卷积,是首先由Goog...

Breeze 1万+

ConvMixer深度解析:纯卷积架构的新突破

​,挑战了Transformer在视觉任务中的统治地位,证明了卷积在全局建模中的潜力。ConvMixer是2022年CVPR论文《Patches Are All You Need?》提出的新型架构,​。输入图像 → 分块嵌入 → ConvMixer层(重复N次) → 全局池化 → 分类头。输入 → 深度卷积 → GELU激活 → 逐点卷积 → Add残差连接 → 输出。为偏置项,每个通道独立计算。ConvMixer通过​。

qq_43664407的博客 1192

从Inception到Xception:深度可分离卷积是如何一步步‘卷’出来的?一次讲清CV关键模块的进化史

本文深入解析了从Inception到Xception的进化历程,重点探讨了深度可分离卷积(Depthwise Separable Convolutions)的技术突破及其在计算机视觉领域的应用。通过对比传统卷积与深度可分离卷积的计算复杂度,揭示了Xception如何实现高效特征提取与轻量化设计,为后续MobileNet等网络奠定基础。

weixin_30785593的博客 431

深入浅出之深度卷积(DW)

深度卷积层(Depthwise Convolutional Layer)是卷积神经网络(CNN)中的一种卷积层类型,其核心特性是对输入特征图的每一个通道分别进行卷积操作。

浩瀚之水的专栏 2092

深度学习算法岗面试必备之深度可分离卷积

左边是一个三通道的特征图,中间是用到的卷积核,右边是提取到的4幅特征。我们以3×3卷积为例,当然也有人用5×5、7×7、9×9。 普通卷积的过程是这样的:输入特征的每个channel分别和卷积核的每个channel中的权值参数做点乘,然后ADD、最后再Concat。 图中的参数量为:3×3×3×4 = 108 需要注意的是: 单个卷积核的通道数和输入特征的通道数相等。 每个卷积核只输出一个channel的特征,输出特征的总channel为卷积核的个数。 而深度可分离卷积是这样的,有两个过程:

认真努力,做一只会飞的毛毛虫。 7423

YOLOv10改进 | 主干/Backbone篇 | 轻量级网络ShuffleNetV2(附代码+修改教程)

本文给大家带来的改进内容是ShuffleNetV2,这是一种为移动设备设计的高效CNN架构。其在ShuffleNetV1的基础上强调除了FLOPs之外,还应考虑速度、内存访问成本和平台特性。(我在YOLOv10n上修改该主干降低了GFLOPs,但是参数量还是有一定上涨,其非常适合轻量化的读者来使用,同时精度也有一定程度的上涨)。本文通过介绍其主要框架原理,然后教你如何添加该网络结构到网络模型中。

Snu77的博客 1342

Verilog中generate for循环的5个实战技巧(附完整代码示例)

本文详细介绍了Verilog中generate for循环的5个高级实战技巧,包括参数化模块实例化、条件化生成、多维硬件结构实现等,并附有完整代码示例。这些技巧能显著提升FPGA开发效率,特别适合中级Verilog开发者学习应用。

weixin_28725949的博客 187

深度学习暑期科研项目(两个月发EI论文)

对本科生而言,越早接触系统的科研训练开始上手科研项目,就越能在未来的升学求职中占据很大的优势。暑假是提升个人简历、丰富科研经历的最佳时期!哈尔滨工业大学博士师兄也会在8月1日开始带大家上手科研项目,并撰写发表EI会议论文。

Magnolia_He的博客 1440

C#调用Bartender打印标签,除了打印还能一键导出图片和PDF(附完整代码)

本文详细介绍了如何使用C#集成Bartender实现标签的多格式输出,包括打印、图片和PDF导出。通过完整的代码示例和实战技巧,帮助开发者解决分辨率适配、纸张尺寸控制等核心问题,提升工业自动化和物流管理中的标签处理效率。

weixin_31236101的博客 369

Gitlab+Jenkins+Docker+Harbor+K8s+Rancher集群搭建CICD平台

本文以诺依项目为例详细记录了Kubernetes集群的部署过程以及配套DevOps环境的搭建。主要内容包括:1) 配置8个节点的软硬件环境;2) 基础环境准备(网络、防火墙、Docker等);3) 三节点Kubernetes集群部署;4) GitLab代码仓库安装;5) Harbor私有镜像仓库搭建;6) Jenkins持续集成工具配置;7) 基于若依项目的CI/CD实践;8) Rancher集群管理工具部署。

hickman2023的博客 1201

保姆级教程:用MATLAB搞定运动模糊图片修复(附完整代码与避坑指南)

本文提供了一份详细的MATLAB运动模糊图片修复教程,涵盖盲复原、图像复原等核心技术。通过傅里叶变换和Radon变换分析模糊参数,对比逆滤波、维纳滤波和Lucy-Richardson算法效果,并附完整代码与避坑指南,帮助用户实现专业级图像处理。

weixin_26765363的博客 228

[QMT量化交易小白入门]-七十九、增加标的后,五年回测收益率达到了2493%

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1573

【020】C++ 动态内存管理解析:new 和 delete 的正确使用

C++中的动态内存分配是在程序运行时根据需要进行内存空间的分配和释放,与静态内存分配相比,具有更大的灵活性和适应性。动态内存分配可以通过new和delete或者malloc()和free()等函数实现。在程序运行时无法确定所需的内存大小。需要在多个函数之间共享数据,并且数据可能被频繁地创建和销毁。静态数组无法满足需求,例如需要支持可变长度数组。如果在动态分配内存后忘记了释放它,则会导致内存泄漏。为避免内存泄漏,可以使用智能指针或手动管理内存的方式来释放动态分配的内存。

Lion_Long的博客 1470

TOGAF架构内容—TOGAF 内容框架和企业元模型

TOGAF架构内容—TOGAF 内容框架和企业元模型

深圳市多克创新科技有限公司 1663

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 卷积神经网络如何提取特征
下一篇: Spring 学习(1)
IT__learning
博客等级 码龄7年 1107粉丝 148原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值