轻量级卷积神经网络

article/2025/6/29 14:36:06

目录

SqueezeNet(2016.11)


SqueezeNet(2016.11)

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

作者使用3个策略来减少模型参数并保证模型精度:

  1. 将部分3x3的卷积核替换为1x1的卷积核:因为3x3的卷积核的参数量是1x1的卷积核的9倍;
  2. 减少输入到3x3的卷积核的通道数:参数量计算公式为C_{in}\times C_{out}\times 3\times 3,减少输入通道数能够有效减少参数量,该部分的实现由Squeeze层来实现;
  3. 延迟降采样的使用:在网络的早期保持特征图的大小有助于提高模型精度。 

Fire Module

该模块由squeeze layer(只有1x1的卷积核)和expand layer(1x1的卷积核和3x3的卷积核)组成,其中1x1的卷积核的使用是为了减少模型的参数,对应于第1个策略;该模块设置了3个超参数s_{1\times 1}e_{1\times 1}e_{3\times 3}来控制该模块的通道数,第1个参数代表在squeeze layer中所有1x1的卷积核的个数,第2个参数代表在expand layer中1x1的卷积核的个数,第3个参数代表在expand layer中3x3的卷积核的个数,注意s_{1\times 1}< e_{1\times 1}+e_{3\times 3},这对应了第2个策略,限制了输入3x3的卷积核的通道数。

SqueezeNet Architecture

SqueezeNet网络如图的最左侧,首先从1个标准卷积层开始,后续为连续的8个Fire Module,最后以1个标准卷积层结束,并逐渐增加通道数;在conv1、Fire4、Fire8和conv10处使用步长为2的Maxpooling进行降采样,这对应了第3个策略,将降采样应用于网络后半部分,提升网络性能。

SqueezeNet architectural dimensions

 网络框架设置的细节

  1. 为保证expand layer中1x1和3x3的卷积输出的特征长和宽一样,对输入到3x3的卷积的特征图做1个像素的padding操作;
  2. 在queeze 和 expand layers中使用ReLU激活;
  3. 对Fire9之后的模块采用50%的dropout;
  4. SqueezeNet中不使用全连接层;
  5. 采用0.04的学习率对网络进行初始训练,并逐渐对学习率进行线性衰减;
  6. 由于Caffe还没有实现同时进行多个卷积的设计,所以在实现expand layer时使用1x1和3x3的卷积层,载对其输出进行通道维度上的拼接。

Evaluation of SqueezeNet

该实验将提出的SqueezeNet与AlexNet,以及经过不同压缩方法的AlexNet进行相比,实验证明使用SVD的方法对AlexNet进行压缩,能够减少5倍的参数,使用Network Pruning方法,能够减少9倍的参数,且保持精度不变;使用Deep Compression的方法能够减少35倍的参数,并保证模型精度;与AlexNet相比,提出的SqueezeNet的参数减少了50倍,并且有一定的精度提升;与压缩后效果最好的AlexNet相比,依然减少了1.4倍的参数。

需要注意的是,对于已经设计好的小参数量模型是否还能够继续进行压缩,作者在本篇文章中做了相关实验。作者采用Deep Compression对SqueezeNet进行压缩,首先使用33%的稀疏和8-bit的量化,使参数量减少了AlexNet的363倍,但是模型性能与AlexNet相等;其次,使用33%的稀疏和6-bit的量化,使参数量减少了AlexNet的510倍,但是模型性能与AlexNet相等。实验证明,小模型依旧可以压缩。压缩后的SqueezeNet与SqueezeNet相比,精度一样,参数量减少10倍。

CNN microarchitecture design space exploration

  • squeeze layerd的挤压率对模型影响的分析。

  • 1x1和3x3的卷积的多少对模型影响的分析。作者认为卷积核的大小对模型的性能有很大的影响,如在VGG中统一使用3x3的卷积。

CNN macroarchitecture design space exploration

该部分的实验是为了探索在宏观的框架层面上,对Fire模块进行不同的残差连接对模型的影响。

  1. 首先设计了具有简单连接的SqueezeNet网络。在第3、5、7、9个Fire模块上添加残差连接。存在的局限性:输入和输出的通道必须相同。
  2. 其次设计了具有复杂连接的SqueezeNet网络。在第2,、4、6、8个Fire模块上添加残差连接,为保证输入通道和输出通道数一致,在残差连接上添加了1x1的卷积操作来改变卷积通道。残差连接可以减少因为通道缩减带来的影响。


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

相关文章

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

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

鸿蒙轻量级数据存储Preferences

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

轻量级目标检测算法整理

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

轻量级网络总结

文章目录 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;首先应先让显示拓展名再进行操…

Pycharm制作搞怪弹窗(声音强制最大,屏幕亮度强制最亮,按钮躲避,弹窗炸弹)

Pycharm制作搞怪弹窗(声音强制最大&#xff0c;屏幕亮度强制最亮&#xff0c;按钮躲避&#xff0c;弹窗炸弹&#xff09; 闲来无聊用python制作了一个搞怪的桌面弹窗程序&#xff0c;惊喜连连哦 运行动图 实现代码&#xff1a; import tkinter as tk import tkinter.font as…

Charles抓包出现弹窗问题或者无法抓包https问题汇总

一、重要问题总结 1、https抓包需要在电脑端和移动端都装上相应的证书&#xff01;不同的电脑、手机需要的证书可能不一样&#xff0c;如果不能正常工作&#xff0c;建议重新安装。 2、iOS10及以上系统&#xff0c;需要在安装charles证书后 在设置->通用->关于本机->…

python制作恶搞_Pycharm制作搞怪弹窗的实现代码

闲来无聊用python制作了一个搞怪的桌面弹窗程序,惊喜连连哦 运行动图 实现代码: import tkinter as tk import tkinter.font as tkFont # 引入字体模块 import time import sys import pygame import random import threading import win32api import wmi from tkinter.messa…

用Python写一个假的病毒炸弹(整蛊)

病毒炸弹 现在我们用Python来写一个假的病毒炸弹 弹窗实现 import tkinter as tk import random import threading import timedef boom():window tk.Tk()width window.winfo_screenwidth()height window.winfo_screenheight()a random.randrange(0, width)b random.ra…

bat 炸弹升级

转自&#xff1a;http://digi.163.com/15/0320/06/AL4LP0QD0016192R.html 第1页&#xff1a;什么是批处理炸弹&#xff1f; 最近网上流传一个叫做《大哥别杀我》视频纷纷遭到网友模仿&#xff0c;虽然我们都知道视频里出现的人大多都是群众演员&#xff0c;但还是会被视频中各种…

xss完成浏览器视窗炸弹

无聊&#xff0c;&#xff0c;&#xff0c;发个文章。 这个就是很简单的视窗炸弹&#xff0c;放在自己的 xss平台上&#xff0c;执行就会一直打开页面。初学者可以 试一试。 function WindowBomb() { var iCounter 0 // dummy counter while (true) { window.open(“https:/…

Linux fork炸弹以及预防办法

fork炸弹是什么&#xff1f; fork炸弹以极快的速度创建大量进程&#xff08;进程数呈以2为底数的指数增长趋势&#xff09;&#xff0c;并以此消耗系统分配予进程的可用空间使进程表饱和&#xff0c;而系统在进程表饱和后就无法运行新程序&#xff0c;除非进程表中的某一进程终…

弹窗炸弹恶搞整人

1.创建一个记事本文件 2.编辑文件内容 在文件中输入以下内容并保存 :start start cmd goto start3.实现弹窗炸弹 把文件扩展名改为.bat。 双击执行&#xff08;慎用&#xff09;&#xff0c;效果如下&#xff1a; 4.解除无线弹窗的方法 方法一&#xff1a; 新建个记事本…

python弹窗炸弹

当我们看某人不爽时&#xff0c;可以用这个&#xff1a; ​ import tkinter as tk import random import threading import timedef dow():window tk.Tk()window.title(你是SB)window.geometry("200x50" "" str(random.randrange(0, window.winfo_scre…