轻量级网络之CondenseNet

article/2025/6/29 12:42:50

轻量级网络之CondenseNet

CondenseNet: An Efficient DenseNet using Learned Group Convolutions
2018CVPR的网络,文章的贡献从名字就能清晰明了的Get。利用可学习分组卷积,对DenseNet的进行轻量化改造。


首先看一下是如何替换网络中的普通卷积:A是原来的卷积,在B中被替换成分组卷积,其中1x1的分组卷积是可以学习分组的;注意在1x1分组卷积前多插入了一层Permute,作者想要在DenseNet的卷积操作中引入group,在3x3卷积中问题不大,但是在1x1卷积中发现直接这样做对最后的结果影响较大,作者推测原因是:一般1x1卷积层的作用是对前面层的输出特征做channel上的融合,因此如果加入group,那么融合的输入就少了许多,因此输出的多样性就得不到保证。所以如果能弄个ShuffleNet那样的shuffle操作,就能增加输出多样性。因此作者通过添加Permute层(该层是变换通道顺序的作用,类似shuffle操作),这可以在一定程度上降低在1x1卷积中引入group操作对结果的影响。
在测试阶段,则采用C的结构。这里1x1分组卷积也变成普通的分组卷积,而在前面加入Index层(类似于0,1掩码)来选择特征分组。这样的话,在GPU上运算会更快。
在这里插入图片描述


最重要的问题就是如何学习分组?
在这里插入图片描述

自学习分组卷积(Learned Group Convolution)可以分成两个阶段:浓缩(Condensing)阶段和优化(Optimizing)阶段。其中浓缩阶段用于剪枝没用的特征,优化阶段用于优化剪枝之后的网络。

  • 浓缩(Condensing):图中分组数 G=3,浓缩率 C=3,即只保留原来1/3的特征。一共会有C-1个浓缩阶段,第一个浓缩阶段(图中最左侧)初始化是普通的卷积网络,在训练该网络时使用了分组lasso正则项,这样学到的特征会呈现结构化稀疏分布,好处是在后面剪枝部分不会过分的影响精度。在每次浓缩阶段训练完成之后会有1/C的特征被剪枝掉。也就是经过C-1个浓缩阶段后,仅有1/C的特征被保留下来

  • 优化(Optimizing):它会针对剪枝之后的网络单独做权值优化。其实就是继续训练,微调参数。用于优化阶段的总Epoch数和浓缩阶段是相同的C-1。如果说一共是M个epoch,就会被2(C-1)均分。

下图是C=4,M=300的曲线。300/(4-1)=100,每次剪枝的时候Loss都会震动,最后一次loss震动的比较剧烈是因为一半的特征被剪枝掉。训练使用cosine学习率退火。
在这里插入图片描述


浓缩时,如何减枝

在这里插入图片描述


网络框架:
在DenseNet基础上进行结构化改进。之前的DenseNet中,每个block内采用密集连接形式,且每层的输出通道数是固定的k,又叫增长因子。在CondenseNet中,作者认为“远亲不如近邻”,也就是挨得比较近的层的输出特征更重要。所以,采用按照指数递增的k值,每个block内k值固定,block数越大k值越大。另外,层与层之间均采用密集连接,而不仅局限于block内了。

在这里插入图片描述

DenseNet传送门:CNN卷积神经网络之DenseNet


效果:
相比于DenseNet:CondenseNet在相同的精度水平下,计算量是前者的十分之一。
相比于MobileNet和ShuffleNet:相同的精度水平下,计算量是前两者的二分之一。在相同的计算量下,top-1误差比前两者低3%。

上一篇:轻量级网络之MobileNet v1
下一篇:轻量级网络之MobileNet v2


http://chatgpt.dhexx.cn/article/urnPKD9f.shtml

相关文章

轻量级大数据计算引擎esProc SPL,Hadoop Spark太重

​强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan 前言 背景:随着大数据时代的来临,数据量不断增长,传统小机上跑数据库的模式扩容困难且成本高昂,难以支撑业务发展。应对之法:很多用户开始转向分布式计算…

轻量级神经网络架构综述

轻量级神经网络架构综述 深度神经网络已经被证明可以有效的解决图像、自然语言等不同领域的问题.同时伴随着移动互联网技术的不断发展,便携式设备得到了迅速的普及,用户提出了越来越多的需求.因此,如何设计高效、高性能的轻量级神经网络是解决问题的关键.本文详细阐述了三种构…

轻量级锁的原理与实战

文章目录 1. 轻量级锁的核心原理2. 代码演示3. 轻量级锁的分类4. 轻量级锁的膨胀 1. 轻量级锁的核心原理 轻量级锁的执行过程:在抢锁线程进入临界区之前,如果内置锁(临界区的同步对象)没有被锁定,JVM首先将在抢锁线程的…

轻量级深度学习网络概览

调研了一下最近的一些轻量级网络,列举并简单介绍各个网络的设计思路 PVANET 2016年1月在arxiv网站第一次提交 文章地址:https://arxiv.org/abs/1608.08021 代码链接:https://github.com/sanghoon/pva-faster-rcnn 文章目的是减少网络计算量…

详细且通俗讲解轻量级神经网络——MobileNets【V1、V2、V3】

文章目录 轻量级神经网络——MobileNetsMobileNetV1深度可分离卷积1、**深度卷积**✨✨✨2、**逐点卷积**✨✨✨ 参数量和计算量1、**标准卷积**2、**深度可分离卷积**✨✨✨ MobileNetV1的网络结构及效果 MobileNetV2Linear Bottlenecks✨✨✨Inverted Residuals✨✨✨MobileN…

目标检测--轻量级网络(截至2022-04-21)

目标检测领域,基于深度学习模型的方案 截至目前的轻量级网络,比较有名的有这些 轻量级目标检测算法整理_牧羊女说的博客-CSDN博客_轻量级目标检测随着目标检测算法的快速发展,以及终端应用的日渐广泛,工业界对深度学习网络在终端…

linux的轻量级桌面,适用于Linux的轻量级桌面是最适合您的 | MOS86

当谈到Linux时,似乎大多数人都以最多的眼睛糖果来谈论桌面环境。虽然这些桌面是以自己的方式伟大的,但他们不是每个人都在寻找图形密集和漂亮的东西。 一些Linux用户喜欢在Linux计算体验方面采用更精简和简化的方法。正是因为这个原因 Note:这个列表中的…

轻量级锁与重量级锁

目录 一、轻量级锁 1、使用场景 2.使用过程 2.1每次指向到synchronized代码块时,都会创建锁记录(Lock Record)对象,每个线程都会包括一个锁记录的结构,锁记录内部可以储存对象的Mark Word和对象引用reference 2.2让锁…

轻量级卷积神经网络

目录 SqueezeNet(2016.11) SqueezeNet(2016.11) 作者认为模型的参数量是影响模型大小以及训练速度的主要因素,因此本篇文章的设计思想就在于如何减少模型的参数量。本篇文章共有6节,其中第1、2节为介绍及相关工作部分;第3节描述了SqueezeNet…

轻量级linux桌面环境,Linux发行版最为轻量级的桌面环境之一Xfce 桌面

开源多样性应该是 Linux 最好的特性之一,用户可以不断尝试各种自己喜欢的新鲜玩法与花样,并从中选择最适合自己的应用。无论你是 Linux 新人还是老鸟,层出不穷的应用和桌面环境可能都会让我们应接不暇,特别是尝试不同的 Linux 桌面环境,可以说是一件非常有趣但也耗时的事情…

鸿蒙轻量级数据存储Preferences

1,概述 鸿蒙轻量级偏好数据库-Preferences。 轻量级偏好数据库主要提供轻量级Key-Value键值对形式操作,支持少量数据,数据存在在本地文件中,同时也加载在内存中,所以速度快,效率高,属于非关系型…

轻量级目标检测算法整理

随着目标检测算法的快速发展,以及终端应用的日渐广泛,工业界对深度学习网络在终端应用的关注度越来越高,尤其是对于如何保持速度和精度上的平衡,也形成了不小的研究热度。本篇整理了一些较新的轻量级目标检测网络,结合…

轻量级网络总结

文章目录 1. SqueezeNet2. ShuffleNet2.1 v12.2 v2 3. MobileNet3.1 v13.2 v23.3 v3 4. GhostNet4.1 v14.2 v2 1. SqueezeNet SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and< 0.5 MB model size 考虑到卷积层的参数量为 C i n ∗ C o u t ∗ K ∗ K …

轻量级c语言开发环境,几款轻量级的C/C++编写软件

因为有同学问我写C用什么软件好点。。。其实这些软件各有优势&#xff0c;只不过看自己需要罢了。 我下了个VS 2017.....不过太大了点。算下来20G左右&#xff0c;硬盘小点的笔记本直接没法玩......(我的就没问题&#xff0c;嘻嘻嘻)&#xff0c;要是你想用VS2017&#xff0c;我…

Synchronized原理(轻量级锁篇)

Synchronized原理&#xff08;轻量级锁篇&#xff09; 简述 介绍 轻量级锁是JDK1.6之中加入的新型锁机制&#xff0c;它名字中的“轻量级”是相对于使用操作系统互斥量来实现的传统锁而言的&#xff0c;因此传统的锁机制就称为“重量级”锁。首先需要强调一点的是&#xff0…

轻量级 android模拟器,【分享中控】轻量级中控系统

先上图: 这是一个简单的模拟器本地中控,自恋的说非常好用,它帮助了我成功开发无数款脚本,已经在多台电脑上稳定运行数月。 虽然不算强大,但是足以应付大部分的脚本开发需求。 [hide]注意 1. 使用此软件的前提是安装好 .Net Framework 4.5 运行环境,Win10自带此环境无需安…

浅析轻量级锁

从轻量级锁 来看锁机制。 (目前 上的唯一一张图。= =。 因为有些东西没有图的话 是很难理清楚的 - - )对象是否被某个线程的锁定的依据是, 对象头中记录的信息。 mark word 也叫对象标志词。对象头的信息内容是变化的,变化后是根据不同的锁标志位来描述对应的信息。 比如当…

14种轻量级网络综述 — 主干网络篇

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 作者丨VincentLee 来源丨晓飞的算法工程笔记 编辑丨极市平台 导读 早期的卷积神经很少考虑参数量和计算量的问题&#xff0c;由此轻量级网络诞生&#xff0c;其旨在保持模型精度基础上近一步减少模型参数量和…

神经网络学习小记录47——ShuffleNetV2模型的复现详解

神经网络学习小记录47——ShuffleNetV2模型的复现详解 学习前言什么是ShuffleNetV2ShuffleNetV21、所用模块2、网络整体结构 网络实现代码 学习前言 据说ShuffleNetV2比Mobilenet还要厉害&#xff0c;我决定好好学一下。 什么是ShuffleNetV2 这篇是ECCV2018关于轻量级模型的…

一个简单的dos命令实现无限弹窗,卡死电脑

教大家一个简单的dos命令实现无限弹窗&#xff0c;从而实现卡死电脑。 1.新建一个文本文件 2.在该文件里面输入 : start start cmd goto start 3.保存后并把此文件的.txt后缀改为.bat 提示&#xff1a;如果你的计算机不显示后缀拓展名&#xff0c;首先应先让显示拓展名再进行操…