多篇论文介绍-DSConv-原文

2024-01-05 05:50

本文主要是介绍多篇论文介绍-DSConv-原文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文地址 https://arxiv.org/pdf/1901.01928v1.pdf

目录

01 改进 YOLOv5的交通灯实时检测鲁棒算法

01 作用

02 模型介绍

02 基于改进YOLOv7一tiny 算法的输电线路螺栓缺销检测

01 作用

02 模型介绍

03 结合注意力机制的 YOLOv5红绿灯检测算法

01 作用

02 模型介绍

04 基于改进YOLOv7的SAR图像舰船目标检测算法

01 作用

02 模型介绍


01 改进 YOLOv5的交通灯实时检测鲁棒算法

01 作用

        使用 DSConv卷积核减少模型参数;

02 模型介绍

02 基于改进YOLOv7一tiny 算法的输电线路螺栓缺销检测

01 作用

        该算法采用高效的分布移位卷积(distibution shiting convolution,DSConv)来替换YOLOv7-tiny网络中的3x3卷积,以提高模型的计算速度并降低计算复杂度;

02 模型介绍

        在网络设计中,DSConv是可用于各种卷积神经网络推理和训练的即插即用替代品,具有2个主要优点:首先,DSConv可以提高标准卷积的存储效率和速度;其次,通过将网络中的3x3卷积替换为DSConv,可以在略微降低模型精度的情况下提高检测速度,并降低模型的运算量。以往的实验结果表明,将DSConv应用于神经网络中,可以有效降低计算复杂度,每秒10亿次的浮点运算数(giga floating-point operations per second,GFLOPs)可从13.2降低至5.6。因此,DSConv是有效的优化选择,其基本结构如图2所示。

        由图2可知,DSConv是使用量化和分布位移来模拟卷积行为的方法;其中,☉表示哈达玛算子(Hadamard operator)。该方法由2个部分组成:可变量化内核( variable quantizedkernel, VQK)和分布位移。VQK仅保存位长可变的整数值,这是DSConv量化分量的一部分,可以使乘法速度更快,存储效率更高;分布位移目的是移动VQK的分布,以模拟原始卷积核的分布,“位移”是指缩放和偏置操作,用2个张量来实现:内核分布移位器(kernel distribution shifter ,KDS)和通道分布移位器(channeldistribution shifier ,CDS),前者移动VQK每个块中的分布,后者移动每个通道中的分布。通过DSConv,卷积核可以减少到原始大小的一部分,从而实现更快、更节省内存的计算。

03 结合注意力机制的YOLOv5红绿灯检测算法

01 作用

        针对引入注意力和检测层导致计算量增大、速度降低的问题,采用分布移位卷积替换部分主干卷积的方法,简化模型,提升速度。

02 模型介绍

        分析模型规模时发现,引入CA注意力机制和增加检测层在提高精度和召回率的同时,也增加了参数量,使模型复杂程度加深,为解决这一问题,利用分布移位卷积(DSConv)替换主干网络的部分标准正则卷积,在保证精度的同时,减少参数量,简化模型的复杂程度。
        DSConv是标准卷积的即插即用替代品,可直接用于任何卷积神经网络,如图5所示,DSconv卷积层将传统的卷积内核分解为2个组件:可变量化内核(VQK)和分布式移位。DSConv利用量化和分布移位来模拟卷积层的行为,首先通过在VQK中存储整数值来实现较低的存储器使用和较高的速度,然后通过应用基于内核和基于通道的分布偏移来保持与原始卷积相同的输出,达到提高模型速度和减少参数量的目的。

        通过对标准卷积的分析,设计了2种新的主干网络卷积结构,如图6所示。Backbone-1 结构将第三层和第五层的卷积核替换成DSConv ,参数量减少约5% ,如图6( a)所示;在 Backbone-1 结构的基础上,将第一层和第七层卷积核替换成DSConv ,进一步降低了15%的参数量,提升了运行速度,如图6(b)所示。

04 基于改进YOLOv7SAR图像舰船目标检测算法

01 作用

        其次,引入卷积变体DSConv,通过在可变量化内核中仅储存整数来实现减少计算量;同时引入卷积层变体DSConv,将原始浮点卷积核参数量化,再通过分布偏移还原原始参数,实现减少内存加快运算速度。引入高效卷积算子DSConv[19]使用量化技术压缩神经网络,减少储存网络占用率。

02 模型介绍

        量化是一种提高卷积神经网络运行速度和缩减内存的流行方法,本文引用一种分布偏移卷积(DSConv)。DSConv是一种灵敏的量化卷积算子,用成本低的多的整数运算代替单精度运算,同时保证卷积内核权重及输出的概率分布。DSConv将原始卷积核拆为两个部分:其中一部分仅有整数值张量,不能训练,并依据预训练网络中浮点的权重分布计算。另一个部分由分布偏移器张量组成:一个分布偏移分布偏移器移动所有内核的分布,另一个移动所有通道。分布偏移部分的权重可以被训练,使网络适应新的任务。

        在可变量化核中仅存放整数值,与原始张量大小一样,参数值一旦设置不能更改,同时通过分布偏移以保存与原始卷积内核相同的输出。在预训练网络时,将权重张量滤波器按深度划分为长度为 B 的块,所有的块共享一个浮点值,然后对所有块量化处理,每个张量节约的内存为公式

5 )。

        其中 C i 为通道数, b 为所选的超参数设置。

这篇关于多篇论文介绍-DSConv-原文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/571852

相关文章

Java中 instanceof 的用法详细介绍

《Java中instanceof的用法详细介绍》在Java中,instanceof是一个二元运算符(类型比较操作符),用于检查一个对象是否是某个特定类、接口的实例,或者是否是其子类的实例,这篇文章... 目录引言基本语法基本作用1. 检查对象是否是指定类的实例2. 检查对象是否是子类的实例3. 检查对象是否

什么是ReFS 文件系统? ntfs和refs的优缺点区别介绍

《什么是ReFS文件系统?ntfs和refs的优缺点区别介绍》最近有用户在Win11Insider的安装界面中发现,可以使用ReFS来格式化硬盘,这是不是意味着,ReFS有望在未来成为W... 数十年以来,Windows 系统一直将 NTFS 作为「内置硬盘」的默认文件系统。不过近些年来,微软还在研发一款名

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2