如何选择出最适合的backbone模型?图像分类模型性能大摸底

到2023年图像分类backbone模型已经拓展到了几十个系列,而有的新算法还在采样vgg、resnet做backbone,比如2022年提出的GDIP-YOLO还在用VGG16做IA参数预测,那是在浪费计算资源并限制了模型性能的提升,应该将目光放到现在的最新模型中。为此博主对现行的各种模型的性能进行一个摸底统计,具体范围包括:
PP-HGNet 系列、ResNet 系列、ResNeXt 系列、Res2Net 系列、SENet 系列、DPN 系列、DenseNet 系列、HRNet 系列、Inception 系列、EfficientNet 系列、ResNeXt101_wsl 系列、ResNeSt 系列、RegNet 系列、RepVGG 系列、MixNet 系列、ReXNet 系列、HarDNet 系列、DLA 系列、RedNet 系列、ConvNeXt 系列、VAN 系列、PeleeNet 系列、CSPNet 系列、PP-LCNet & PP-LCNetV2 系列、ViT 系列、DeiT 系列、SwinTransformer 系列、Twins 系列、CSWinTransformer 系列、PVTV2 系列 、LeViT 系列、TNT 系列、MobileViT 系列模型。具体信息参考mageNet1k/model_list.md

以PaddleClas所支持的模型为基准对现行图像分类模型进行进行一个摸底,具体分为移动端模型、桌面端模型、服务器级模型。以在imagenet数据集上的精度为准,精度在80%附近的只考虑移动端模型,精度在85%附近考虑服务器级模型,精度超过85%的都归纳为大型模型。这里不区分是否知识蒸馏、是否在外部数据集上进行预训练。

通过以下分析,发现中低端flop训练与部署环境应该考虑ReXNet与EfficientNet等系列模型,高flop训练与部署环境应该考虑CSWinTransformer、SwinTransformer等模型。同时,通过分析也发现了经典的移动端模型在逐步被一些新结构所颠覆,如ReXNet。
在这里插入图片描述

1、移动端模型

移动端在模型这里特指flop个mem都比较小的模型,也就是针对移动端部署对conv架构进行了局部修改的轻量化结构。常见的模型结构有mobilenet系列(v1、v2、v3,Vit)、GhostNet系列、ShuffleNet系列、PP-LCNet系列。具体的入选标准为flop低于2G,模型参数量低于40M。ImageNet acc大于75%的模型,故此将一些性能强悍的特殊模型纳入范围,如EfficientNet系列等模型。

在这里插入图片描述
调研结果表示,ReXNet_2_0、EfficientNetB2属于最具性价比的移动端模型。同时通过对比发现,对原有模型进行知识蒸馏相比与其原来的模型基本上都有2~4个点的精度提升,例如:GhostNet_x1_3_ssld提升4个点。以上信息还表明轻量化模型还有ReXNet、LeViT、EfficientNet系列。此外,以上表格没有统计到MobilerVit系列模型,MobilerVit系列模型,在与ReXNet系列相比,MobilerVit系列模型还是不够强
在这里插入图片描述

PP-LCNet系列模型是paddle团队提出的模型,其认为推理速度也是极为重要的一环,故将其与其他轻量级网络的性能进行对比。同时,也告诉我们低flop的模型,推理速度未必快。

ModelParams(M)FLOPs(M)Top-1 Acc(%)Top-5 Acc(%)Latency(ms)
MobileNetV2_x0_251.53453.2176.522.47
MobileNetV3_small_x0_351.71553.0376.373.02
ShuffleNetV2_x0_330.62453.7377.054.30
PPLCNet_x0_251.51851.8675.651.74
MobileNetV2_x0_52.09965.0385.722.85
MobileNetV3_large_x0_352.14164.3285.463.68
ShuffleNetV2_x0_51.44360.3282.264.65
PPLCNet_x0_51.94763.1484.662.05
MobileNetV1_x1_04.357870.9989.683.38
MobileNetV2_x1_03.532772.1590.654.26
MobileNetV3_small_x1_253.610070.6789.513.95
PPLCNet_x1_0 3.016171.3290.032.46
PPLCNetV2_base6.660477.0493.274.32
PPLCNetV2_base_ssld6.660480.0794.874.32

此外还有VAN、PeleeNet、CSPNet模型在设计上也算是轻量化模型,但是效果不如以上的好。
在这里插入图片描述
在这里插入图片描述

2、桌面级模型

桌面级模型在这里特指flop大于1g且低于4g,参数量低于60M的模型,也就是可以在普通的消费级GPU上进行自由训练的模型。同时,同类型的模型只列出最高精度的模型。
在这里插入图片描述
在上表中EfficientNet没有模型入选,这是因为其模型的siez跨度刚好不在范围内。在上表中,最佳模型任然是ReXNet
在这里插入图片描述

3、服务器级模型

这里为flop高与参数量正常的模型,只统计在ImageNet精度高于80%(如vgg、resnet等模型精度不达标不在此表中),Flop大于4的模型。同类型的模型,除非top1 精度大于85%,否则每类模型只保留最高精度模型。
从下图中可以看出,最具性价比的模型是CSWinTransformer_large_224与PVT_V2_B5,其中LeViT_384为乱入的模型。使用这类模型进行训练,batchsize和image size都不能设置的太大。
在这里插入图片描述
在PaddleClas中没有EfficientNetV2,在与上表中相比,EfficientNetV2-M在acc 85%的档次也是非常具备性价比的模型。
在这里插入图片描述
针对一些模型,PaddleClas提供了蒸馏后的权重,这里给出其精度信息,可以发现这类模型虽然精度高于80%,但是并不比前面未蒸馏过的模型占据优势。
在这里插入图片描述

4、常见模型

在上述统计中,如vgg、resnet、densenet、inception、cspdarknet、repvgg等经典模型没有上榜,这里进行一个补充。从以上统计中,也可以发现经典的模型范式已经跟不上新技术的发展了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/264669.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ARM Cortex-M 系列 5 -- RT-Thread renesas/ra4m2-eco 移植编译篇】

文章目录 RT-Thread 移植编译篇编译os.environ 使用示例os.putenv使用示例python from 后指定路径 编译问题_POSIX_C_SOURCE 介绍编译结果 RT-Thread 移植编译篇 本文以瑞萨的ra4m2-eco 为例介绍如何下载rt-thread 及编译的设置。 RT-Thread 代码下载: git clone …

GIT具体配置步骤详解

GIT配置具体步骤如下 SDK 使用 Repo 工具管理,拉取 SDK 需要配置安装 Repo 工具。 Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workf…

Java小案例-Sentinel的实现原理

前言 Sentinel是阿里开源的一款面向分布式、多语言异构化服务架构的流量治理组件。 主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 核心概念 要想理解一个新的技…

操作符详解2

一、操作符的属性:优先级、结合性 C语言的操作符有2个重要的属性:优先级、结合性,这两个属性决定了表达式求值的计算顺序。 1.优先级 优先级指的是,如果一个表达式包含多个运算符,哪个运算符应该优先执行。各种运算…

C++:第九讲前缀和与差分

Everyday English Your optimal career is simply this: Share the real you with physical world through th e process of creative self-expression. 你的最佳职业很简单,就是这样:通过创造性自我表达的途径和世界分享真实的你。 前言 这节课带你们…

Redis连接不上:主机无法连接虚拟机中的redis服务

1、报错信息 2023-12-22 16:01:25 : Connection: redis-dev > connection failed 2023-12-22 16:01:25 : Click on tree item: 0 2023-12-22 16:01:25 : Connection: Connection error: Connection refused 2、解决 主机<本地>无法连接虚拟机中的redis服务 首先…

智能优化算法应用:基于人工大猩猩部队算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于人工大猩猩部队算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于人工大猩猩部队算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工大猩猩部队算法4.实验参…

基于STM32的HC-SR501红外感应模块驱动与应用

一、 简介 HC-SR501红外感应模块是一种常用的人体红外感应模块&#xff0c;常用于安防监控、智能家居等领域。本文将介绍如何在STM32单片机上驱动和应用HC-SR501红外感应模块&#xff0c;实现基本的人体检测功能。 二、 模块原理 HC-SR501红外感应模块基于红外热释电传感器&am…

低代码如何助力企业数字化转型?

目录 一、低代码开发是什么&#xff1f; 二、低代码与企业数字化转型 1&#xff09;集成化 2&#xff09;智能化 3&#xff09;定制化 三、低代码开发平台对于企业数字化转型的优势 01、提供源码 02、私有化部署 03、敏捷开发 04、拓展能力 四、低代码带来的效益 以…

机器学习笔记 - 音频信号处理基础知识

一、音频处理基础 音频处理是指使用各种技术和算法对音频信号进行操作和修改。 它涉及对音频数据应用数字信号处理 (DSP) 方法,以增强、修改或分析声音。音频处理广泛应用于各种应用中,包括音乐制作、电信、语音识别、音频压缩等。 1、信号类型 连续信号:连续信号或连续时间…

微信小程序中miniprogram_npm文件夹怎么生成的(详解)

遇到问题 在小程序种引入vant组件&#xff0c;并没有找到目录中有miniprogram_npm文件夹&#xff0c;导致vant没有引入成功&#xff0c; 解决办法 vant引入一半&#xff0c; 尝试&#xff0c; 先构建npm&#xff0c;再继续引入vant 果然构建npm后&#xff0c;miniprogram_np…

SuperMap Hi-Fi 3D SDK for Unity基础开发教程

作者&#xff1a;kele 一、背景 众所周知&#xff0c;游戏引擎&#xff08;Unity&#xff09;功能强大&#xff0c;可以做出很多炫酷的游戏和动画效果&#xff0c;这部分功能的实现往往不仅仅是靠可视化界面就能够实现的&#xff0c;还需要代码开发。SuperMap Hi-Fi SDKS for …

k8s启动docker容器Error: Could not find or load main class ${start-class}报错

前行提要&#xff1a; 今天部署采集点服务&#xff08;docker项目&#xff09;发现报这个错误。 提出假设&#xff1a; 1&#xff0c;配置文件错误&#xff08;工程需要配置的东西比较多&#xff09; 之后开始一一排查&#xff0c;发现配置有问题&#xff0c;但是不是这个错误…

ceph块存储学习

目录 ceph的组件和功能 ceph的数据读写流程 ceph存储池学习 ceph的组件和功能 Ceph OSD&#xff1a;功能是存储数据&#xff0c;处理数据的复制、恢复、平衡数据分布&#xff0c;并将一些相关数据提供给Ceph Monitor,。 Ceph Monitor: 功能是维护整个集群健康状态&…

GEM5 Garent CPU cache消息传递路径:1. NI部分

简介 我们仔细分析下图怎么连的&#xff0c;以及消息传递路径。 图来自https://www.gem5.org/documentation/general_docs/ruby/ 代码的连接 fs.py->ruby.py-> gem5/configs/ruby/MESI_Two_Level.py 中的 create_system( options, full_system, system, dma_ports, b…

Redis实现日榜|晋级榜单|直播间榜单|排行榜|Redis实现日榜02

目录 前言 难点 解决方案 前言 通常一个主播的活动榜单大概会分为几个流程来进行&#xff0c;例如可以分为海选赛&#xff0c;晋级赛&#xff0c;突围赛&#xff0c;年度10大主播&#xff0c;年度总决赛。 1.海选赛&#xff1a;从平台所有的主播中进行选拔&#xff0c;在海…

Ubuntu 常用命令之 cal 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 cal命令在Ubuntu系统下用于显示日历。它可以显示任何特定月份或整个年份的日历。 cal命令的参数如下 -1&#xff1a;只显示当前月份的日历。-3&#xff1a;显示前一个月、当前月和下一个月的日历。-s&#xff1a;指定日历的开始…

uni-app学习记录

uni-app官网学习记录 uni-app注意点记录 页面跳转注意事项 navigateTo, redirectTo 只能打开非 tabBar 页面。switchTab 只能打开 tabBar 页面。reLaunch 可以打开任意页面。不能在首页 onReady 之前进行页面跳转。 页面通讯 // 发起页面uni.$emit(update,{msg:页面更新})//…

4G微型RTU如何实现冬季工业管网远程监测

随着我国北方全面进入到冬季&#xff0c;多日以来严寒、降雪天气频发&#xff0c;工业基础设施也迎来冬季考验。对于一些输送化工原料、油气和给排水等用途的工业管网设施&#xff0c;在面临极端冰雪天气时易产生各种风险&#xff0c;诸如管道水/气泄漏损耗、低温冻裂、积雪压塌…

ElasticSearch 数据分片

一、ElasticSearch 分片 ElasticSearch集群中有许多个节点(Node)&#xff0c;每一个节点实例就是一个实例&#xff1b;数据分布在分片之间。集群的容量和性能主要取决于分片如何在节点上如何分配。将数据分片是为了提高可处理的容量和易于进行水平扩展&#xff0c;为分片做副本…