站内搜索

搜索

手游源码-游戏源码-棋牌源码资源网-亲测源码-游戏搭建-破解游戏-网站源码-qq技术

100金币/天 购买
100金币/天 购买
100金币/天 购买

CPU端的最强轻量型架构(二)

16

主题

102

帖子

102

金币

绿钻会员

Rank: 3Rank: 3

积分
302
发表于 2022-1-24 00:37:19 | 显示全部楼层 |阅读模式
【介绍】轻量级网络架构的开源项目之前已经详细介绍过了。详情请看 ,今天主要介绍CPU端最强的轻量级架构。本项目主要提供移动网络架构的基础工具,避免重复造轮子。未来,我们将为特定的视觉任务集成更多的移动网络架构。希望这个项目不仅能让初学者快速上手深度学习,还能更好地服务于科研、学术和工业研发社区。 (欢迎各位轻量级网络研究学者将自己工作的核心代码整理到本项目中,以促进科研社区的发展。我们会在里面注明代码作者~) 未来我们会持续更新模型轻量级处理的一系列方法,包括:剪枝、量化、知识蒸馏等。 地址:PP-LCNet:A CPU
: 近年来,随着特征提取模型能力的提升,出现了很多轻量级的网络架构,其中使用NAS进行搜索的网络架构也层出不穷。典型的是 FBNet 系列。但是移动端的很多轻量级算法的优化,都脱离了业界最常用的Intel CPU设备环境,模型加速慢。因此,在本文中,作者重新思考了在 Intel-CPU 上设计网络的轻量级模型元素。特别是,作者考虑了以下三个基本问题。
综合以上三个问题,本文总结了一系列在不增加推理时间的情况下提高准确率的方法,以及如何将这些策略有效地结合起来,以在准确率和速度之间取得更好的平衡。最后,提出了一种结合Intel-CPU端侧推理特性设计的轻量级高性能网络PP-​​LCNet。所提出的架构实现了比延迟精度更好的平衡。具体的网络架构如下:
主要解决方案: 使用 H-Swish 作为激活函数,性能大幅提升,而推理速度几乎没有变化。在网络的适当位置加入少量的 SE 模块,可以进一步提升模型的性能;实验表明,将 SE 置于模型尾部时,效果更好。因此,我们只将 SE 模块添加到靠近网络尾部的模块中,这具有更好的精度-速度平衡。根据实验演示结果:大的卷积核可以在一定范围内提升模型的性能,但是超过这个范围会损坏模型的性能。本文通过实验总结了一些较大的卷积核在不同位置的效果。类似于 SE 模块的位置,较大的卷积核在网络的中部和后部具有更明显的效果。比如5x5卷积。GAP之后使用更大的1x1卷积层;之后,分类层往往在GAP(--)之后直接连接天外神坛,但在轻量级网络中,GAP之后提取的特征不会进一步融合处理。如果后面使用更大的1x1卷积层(相当于FC层),GAP之后的特征不会直接经过分类层,而是先融合,融合后的特征会被分类。这样可以在不影响模型推理速度的情况下大大提高准确率。使用技术可以进一步提高模型的准确性。代码实现如下:GAP之后使用更大的1x1卷积层;之后,分类层往往在GAP(--)之后直接连接,但在轻量级网络中,GAP之后提取的特征不会进一步融合处理。如果后面使用更大的1x1卷积层(相当于FC层),GAP之后的特征不会直接经过分类层,而是先融合,融合后的特征会被分类。这样可以在不影响模型推理速度的情况下大大提高准确率。使用技术可以进一步提高模型的准确性。代码实现如下:GAP之后使用更大的1x1卷积层;之后主流的net快速开发框架,分类层往往在GAP(--)之后直接连接,但在轻量级网络中,GAP之后提取的特征不会进一步融合处理。如果后面使用更大的1x1卷积层(相当于FC层),GAP之后的特征不会直接经过分类层,而是先融合,融合后的特征会被分类。这样可以在不影响模型推理速度的情况下大大提高准确率。使用技术可以进一步提高模型的准确性。代码实现如下:GAP后提取的特征不会进一步融合处理。如果后面使用更大的1x1卷积层(相当于FC层),GAP之后的特征不会直接经过分类层,而是先融合主流的net快速开发框架,融合后的特征会被分类。这样可以在不影响模型推理速度的情况下大大提高准确率。使用技术可以进一步提高模型的准确性。代码实现如下:GAP后提取的特征不会进一步融合处理。如果后面使用更大的1x1卷积层(相当于FC层),GAP之后的特征不会直接经过分类层,而是先融合,融合后的特征会被分类。这样可以在不影响模型推理速度的情况下大大提高准确率。使用技术可以进一步提高模型的准确性。代码实现如下:使用技术可以进一步提高模型的准确性。代码实现如下:使用技术可以进一步提高模型的准确性。代码实现如下:

    import torch
from light_cnns import lcnet_baseline
model = lcnet_baseline()
model.eval()
print(model)
input = torch.randn(1, 3, 224, 224)
y = model(input)
print(y.size())

实验结果展示
精彩内容待更新 欢迎大家给项目地址加star,我们会持续跟踪前沿论文的工作,如果项目复制整理过程中出现问题,欢迎在issue中提出! 地址:
【天外神坛】免责声明及帮助
1.重要:如果遇到隐藏内容回复后显示为代码状态,直接刷新一下页面即可解决此问题。
2.本文部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
3.若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4.如果本站有侵犯、不妥之处的资源,请在网站右边客服联系我们。将会第一时间解决!
5.本站所有内容均由互联网收集整理、网友上传,仅供大家参考、学习,不存在任何商业目的与商业用途。
6.本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
回复

使用道具 举报

14

主题

1万

帖子

-225

金币

论坛元老

Rank: 8Rank: 8

积分
17402
发表于 2023-2-3 23:39:15 | 显示全部楼层
感觉这个源码挺不错
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

老群被封加此新群不迷路。
上个主题 下个主题 快速回复 返回列表 客服中心 搜索 QQ加群
上个主题 下个主题 快速回复 返回列表 客服中心 搜索 QQ加群

QQ|Archiver|小黑屋|天外神坛

湘ICP备2021015333号

Powered by 天外神坛 X3.4 © 2020-2022 天外神坛