【YOLOv8改进 - Backbone主干】FasterNet:基于PConv(部分卷积)的神经网络,提升精度与速度,降低参数量。

简介: 【YOLOv8改进 - Backbone主干】FasterNet:基于PConv(部分卷积)的神经网络,提升精度与速度,降低参数量。

YOLOv8目标检测创新改进与实战案例专栏

专栏目录: YOLOv8有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

专栏链接: YOLOv8基础解析+创新改进+实战案例

介绍

image-20240611225844458

摘要

为了设计快速的神经网络,许多研究工作集中在减少浮点运算次数(FLOPs)。我们观察到,尽管减少FLOPs确实带来了一定的性能提升,但并不一定会导致相同程度的延迟减少。这主要是由于浮点运算每秒(FLOPS)效率低下导致的。为了实现更快的网络,我们重新审视了流行的算子,并发现这种低FLOPS主要是由于算子的频繁内存访问,特别是深度卷积。因此,我们提出了一种新型的部分卷积(PConv),通过同时减少冗余计算和内存访问,更高效地提取空间特征。在我们提出的PConv基础上,我们进一步提出了FasterNet,一个新的神经网络家族,在各种设备上实现了显著更高的运行速度,而不牺牲各种视觉任务的准确性。例如,在ImageNet-1k上,我们的FasterNet-T0在GPU、CPU和ARM处理器上的运行速度分别比MobileViT-XXS快2.8倍、3.3倍和2.4倍,同时准确率高出2.9%。我们的FasterNet-L在GPU上的推理吞吐量比新兴的Swin-B高36%,在CPU上节省了37%的计算时间,同时达到了令人印象深刻的83.5%顶级准确率。代码可在此处获取。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

在 PConv 的基础上,作者进一步提出了 FasterNet,一种新的神经网络家族,在各种设备上的运行速度远高于其他网络。例如,在 ImageNet1k 上,小型的 FasterNet-T0 在 GPU、CPU 和 ARM 处理器上分别比 MobileViT XXS 快3.1倍、3.1倍和2.5倍,同时准确率高 2.9%。大型 FasterNet-L 实现了令人印象深刻的 83.5% 的 top-1 精度,与 Swin-B 不相上下,同时在 GPU 上的推理吞吐量提高了 49%,并在 CPU 上节省了 42% 的计算时间。

Pconv卷积

 Pconv它只对几个输入通道应用滤波器,而不影响其余的输入通道。PConv比常规卷积获得更低的FLOPs,而比深度/组卷积获得更高的FLOPs。PConv的FLOPs比常规Conv低,而比DWConv/GConv有更高的FLOPs。换句话说,PConv更好地利用了设备上的计算能力。PConv在提取空间特征方面也很有效。

image-20240611230220897

PWConv

   PWConv的基本思想是在每个像素点上分别进行卷积计算,从而实现卷积操作。相对于传统的卷积操作,PWConv具有计算效率高和模型参数较少等优势,其主要优势在于它可以用较少的参数实现模型的有效表达,从而减少模型计算量和内存消耗。此外,PWConv还可以用于实现多通道特征的通道关系转换和压缩。

image-20240612152402881

整体结构

FasterNet有四个分层阶段,每个阶段都有一堆 FasterNet 块,前面有一个嵌入层或合并层。最后三层用于要素分类。在每个 FasterNet 块中,一个 PConv 层后面跟着两个 PWConv 层。我们只将归一化和激活层放在中间层之后,以保持特征多样性并实现更低的延迟image-20240612152251917

task与yaml配置

详见:https://blog.csdn.net/shangyanaf/article/details/139639091

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
4月前
|
机器学习/深度学习 自然语言处理 计算机视觉
【YOLOv8改进 - Backbone主干】VanillaNet:极简的神经网络,利用VanillaNet替换YOLOV8主干
【YOLOv8改进 - Backbone主干】VanillaNet:极简的神经网络,利用VanillaNet替换YOLOV8主干
|
4月前
|
机器学习/深度学习 自然语言处理 计算机视觉
【YOLOv8改进 - Backbone主干】VanillaNet:极简的神经网络,利用VanillaBlock降低YOLOV8参数
【YOLOv8改进 - Backbone主干】VanillaNet:极简的神经网络,利用VanillaBlock降低YOLOV8参数
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch代码实现神经网络
这段代码示例展示了如何在PyTorch中构建一个基础的卷积神经网络(CNN)。该网络包括两个卷积层,分别用于提取图像特征,每个卷积层后跟一个池化层以降低空间维度;之后是三个全连接层,用于分类输出。此结构适用于图像识别任务,并可根据具体应用调整参数与层数。
|
3月前
|
机器学习/深度学习 数据可视化 Python
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。
57 0
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
|
3月前
|
机器学习/深度学习 Linux TensorFlow
【Tensorflow+keras】用代码给神经网络结构绘图
文章提供了使用TensorFlow和Keras来绘制神经网络结构图的方法,并给出了具体的代码示例。
57 0
|
3月前
|
机器学习/深度学习 自然语言处理 TensorFlow
|
4月前
|
机器学习/深度学习 编解码 数据可视化
图神经网络版本的Kolmogorov Arnold(KAN)代码实现和效果对比
目前我们看到有很多使用KAN替代MLP的实验,但是目前来说对于图神经网络来说还没有类似的实验,今天我们就来使用KAN创建一个图神经网络Graph Kolmogorov Arnold(GKAN),来测试下KAN是否可以在图神经网络方面有所作为。
189 0
|
6月前
|
机器学习/深度学习 自然语言处理 搜索推荐
【传知代码】图神经网络长对话理解-论文复现
在ACL2023会议上发表的论文《使用带有辅助跨模态交互的关系时态图神经网络进行对话理解》提出了一种新方法,名为correct,用于多模态情感识别。correct框架通过全局和局部上下文信息捕捉对话情感,同时有效处理跨模态交互和时间依赖。模型利用图神经网络结构,通过构建图来表示对话中的交互和时间关系,提高了情感预测的准确性。在IEMOCAP和CMU-MOSEI数据集上的实验结果证明了correct的有效性。源码和更多细节可在文章链接提供的附件中获取。
【传知代码】图神经网络长对话理解-论文复现