点上方计算机视觉联盟获取更多干货

仅作学术分享,不代表本公众号立场,侵权联系删除

转载于:量子位

AI博士笔记系列推荐

周志华《机器学习》手推笔记正式开源!可打印版本附pdf下载链接

你还在为神经网络模型里的冗余信息烦恼吗?

或者手上只有CPU,对一些只能用昂贵的GPU建立的深度学习模型“望眼欲穿”吗?

最近,创业公司Neural Magic带来了一种名叫新的稀疏化方法,可以帮你解决烦恼,让你的深度学习模型效率“一节更比七节强”!

Neural Magic是专门研究深度学习的稀疏方法的公司,这次他们发布了教程:用recipe稀疏化YOLOv3

听起来有点意思啊,让我们来看看是怎么实现的~

稀疏化的YOLOv3

稀疏化的YOLOv3使用剪枝(prune)量化(quantize)等算法,可以删除神经网络中的冗余信息。

这种稀疏化方法的好处可不少。

它的推断速度更快,文件更小。

但是因为过程太复杂,涉及的超参数又太多,很多人都不太关心这种方法。

Neural Magic的ML团队针对必要的超参数和指令,创建了可以自主编码的recipe。

各种不同条件下的recipe构成了一种可以满足客户各类需求的框架。

这样就可以建立高度精确的pruned或pruned quantized的YOLOv3模型,从而简化流程。

那这种稀疏化方法的灵感来源是什么呢?

其实,Neural Magic 的 Deep Sparse(深度稀疏)架构的主要灵感,是在产品硬件上模仿大脑的计算方式。

它通过利用 CPU 的大型快速缓存和大型内存,将神经网络稀疏性与通信局部性相结合,实现效率提升。

教程概况

本教程目录主要包括三大模块:

  • 创建一个预训练的模型

  • 应用Recipe

  • 导出推理

教程的这些recipe可以帮助用户在Ultralytics强大的训练平台上,使用稀疏深度学习的recipe驱动的方法插入数据。

教程中列出的示例均在VOC数据集上执行,所有结果也可通过“权重和偏差”项目公开获得(地址见参考链接4)。

调试结果展示

研究团队给出了稀疏YOLOv3目标检测模型在Deep Sparse引擎和PyTorch上的运行情况。

这段视频以波士顿著名地标为特色,在Neural Magic的诞生地——MIT的校园取景。

同样的条件下,在Deep Sparse引擎上比PyTorch上效率会更高。

遇到的常见问题

如果用户的硬件不支持量化网络来推理加速,或者对完全恢复的要求非常高,官方建议使用pruned或pruned short 的recipe。

如果用户的硬件可以支持量化网络,如CPU 上的 VNNI 指令集,官方建议使用pruned quantized或pruned quantized short的recipe。

所以使用哪一种recipe,取决于用户愿意花多长时间训练数据,以及对完全恢复的要求。

具体要比较这几种recipe的话,可以参考下表。

网友:这个框架会比传统的机器学习框架pytorch好吗?

既然给出了和pytorch的比较视频,就有网友发问了:

Neural Magic也使用python吗?为什么一个比另一个快10倍以上?我不相信像pytorch这样传统的机器学习框架不会得到优化。两种模型的实现是否相同?

公司官方人员也下场解释了:

我们拥有专利技术,可以通过减少计算和内存移动来使稀疏网络在CPU上更高效的运行。

虽然传统的ML框架也能很好地实现简单而高效的训练过程。

但是,多加入一些优化的推理,可以实现更多的性能,尤其是在CPU上更明显。

看来,有了以上强大的YOLOv3 模型工具和教程,用户就可以在CPU上,以最小化的占用空间和GPU的速度来运行深度学习模型。

这样有用的教程,你还在等什么?

希望教程能对大家有所帮助,欢迎在评论区分享交流训练模型经验~

最后介绍一下Neural Magic,有兴趣的朋友可以去了解一下。

Neural Magic是一家什么样的公司?

Neural Magic成立在马萨诸塞州的剑桥。

创始人Nir Shavit和Alexander Matveev在MIT绘制大脑中的神经连接图时,一直觉得GPU有许多限制。

因此他们停下来问自己两个简单的问题:

为什么深度学习需要GPU等专用硬件?

有什么更好的方法吗?

毕竟,人脑可以通过广泛使用稀疏性来减少神经网络,而不是添加FLOPS来匹配神经网络,从而满足神经网络的计算需求。

基于这种观察和多年的多核计算经验,他们采用了稀疏和量化深度学习网络的技术,并使其能够以GPU的速度或更高的速度在商用CPU上运行。

这样,数据科学家在模型设计和输入大小上就不需要再做妥协,也没必要用稀缺且昂贵的GPU资源。

Brian Stevens

Neural Magic的CEO,Red Hat和Google Cloud的前CTO。

Nir Shavit

Neural Magic联合创始人。

麻省理工学院教授,他目前的研究涉及为多处理器设计可伸缩软件的技术,尤其是多核计算机的并发数据结构。

Alexander Matveev

Neural Magic首席技术官兼联合创始人。

麻省理工学院前研究科学家,专门研究AI多核算法和系统。

参考链接:

[1]https://github.com/neuralmagic/sparseml/blob/main/integrations/ultralytics-yolov3/t2.utorials/sparsifying_yolov3_using_recipes.md
[2]https://neuralmagic.com/blog/sparsifying-yolov3-using-recipes-tutorial/
[3]https://arxiv.org/pdf/1804.02767.pdf
[4]https://wandb.ai/neuralmagic/yolov3-spp-lrelu-voc

-------------------

END

--------------------

我是王博Kings,985AI博士,华为云专家、CSDN博客专家(人工智能领域优质作者)。单个AI开源项目现在已经获得了2100+标星。现在在做AI相关内容,欢迎一起交流学习、生活各方面的问题,一起加油进步!

我们微信交流群涵盖以下方向(但并不局限于以下内容):人工智能,计算机视觉,自然语言处理,目标检测,语义分割,自动驾驶,GAN,强化学习,SLAM,人脸检测,最新算法,最新论文,OpenCV,TensorFlow,PyTorch,开源框架,学习方法...

这是我的私人微信,位置有限,一起进步!

王博的公众号,欢迎关注,干货多多

王博Kings的系列手推笔记(附高清PDF下载):

博士笔记 | 周志华《机器学习》手推笔记第一章思维导图

博士笔记 | 周志华《机器学习》手推笔记第二章“模型评估与选择”

博士笔记 | 周志华《机器学习》手推笔记第三章“线性模型”

博士笔记 | 周志华《机器学习》手推笔记第四章“决策树”

博士笔记 | 周志华《机器学习》手推笔记第五章“神经网络”

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(上)

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(下)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(上)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(下)

博士笔记 | 周志华《机器学习》手推笔记第八章集成学习(上)

博士笔记 | 周志华《机器学习》手推笔记第八章集成学习(下)

博士笔记 | 周志华《机器学习》手推笔记第九章聚类

博士笔记 | 周志华《机器学习》手推笔记第十章降维与度量学习

博士笔记 | 周志华《机器学习》手推笔记第十一章稀疏学习

博士笔记 | 周志华《机器学习》手推笔记第十二章计算学习理论

博士笔记 | 周志华《机器学习》手推笔记第十三章半监督学习

博士笔记 | 周志华《机器学习》手推笔记第十四章概率图模型

点分享

点收藏

点点赞

点在看

转变思维!采用稀疏化加速 YoloV3 模型!省了 GPU !相关推荐

  1. 不用GPU,稀疏化也能加速你的YOLOv3深度学习模型

    水木番 发自 凹非寺 来自|量子位 你还在为神经网络模型里的冗余信息烦恼吗? 或者手上只有CPU,对一些只能用昂贵的GPU建立的深度学习模型"望眼欲穿"吗? 最近,创业公司Neur ...

  2. AI模型工业部署:综述【常用的部署框架:TensorRT、Libtorch】【常见提速方法:模型结构、剪枝、蒸馏、量化训练、稀疏化】【常见部署流程:onnx2trt】【常见服务部署搭配】

    作为深度学习算法工程师,训练模型和部署模型是最基本的要求,每天都在重复着这个工作,但偶尔静下心来想一想,还是有很多事情需要做的: 模型的结构,因为上线业务需要,更趋向于稳定有经验的,而不是探索一些新的 ...

  3. 谁说学生模型就得小?稀疏化DAN模型推理可提速600倍

    ©PaperWeekly 原创 · 作者 | BNDSBilly 研究方向 | 自然语言处理 Abstract 有效提升模型推理速度的方式是对 SOTA 的 Transformer 模型进行压缩,然而 ...

  4. Google AI与Deepmind强强联合,加速神经网络稀疏化进程

    来源:Google AI Blog 编辑:keyu [导读]优化神经网络的一个方法是稀疏化,然而,受到支持不足和工具缺乏的限制,该技术在生产中的使用仍然受限.为了解决这一问题,近日,Google联合D ...

  5. 清华鲁继文团队提出DynamicViT:一种高效的动态稀疏化Token的ViT

    [导读] 由于随着ViT中的token数量的增长,会导致计算成本呈平方级急剧增加!近期,清华黄高团队提出了自适应序列长度的DVT方案,本篇文章,我们将介绍另一种方法.6月3日,清华鲁继文教授团队提出了 ...

  6. 还在用全部token训练ViT?清华UCLA提出token的动态稀疏化采样,降低inference时的计算量...

    关注公众号,发现CV技术之美 本文分享一篇由清华& UCLA联合研究的论文『DynamicViT: Effificient Vision Transformers with Dynamic T ...

  7. 如何让你的YOLOV3模型更小更快?

    1. 前言 之前讲过关于模型剪枝的文章深度学习算法优化系列七 | ICCV 2017的一篇模型剪枝论文,也是2019年众多开源剪枝项目的理论基础 并分析过如何利用这个通道剪枝算法对常见的分类模型如VG ...

  8. 深度学习- Dropout 稀疏化原理解析

    搬运原文链接:https://zhuanlan.zhihu.com/p/38200980 深度学习中 Dropout 原理解析 文章目录 深度学习中 Dropout 原理解析 1. Dropout 简 ...

  9. alexeyab darknet 编译_【目标检测实战】Darknet—yolov3模型训练(VOC数据集)

    原文发表在:语雀文档 0.前言 本文为Darknet框架下,利用官方VOC数据集的yolov3模型训练,训练环境为:Ubuntu18.04下的GPU训练,cuda版本10.0:cudnn版本7.6.5 ...

最新文章

  1. window.showModalDialog
  2. 获取服务器配置信息的方法
  3. 【算法的时间复杂度和空间复杂度】-算法02
  4. python中set函数是什么数据类型_阿博Python之路-详解Set数据类型
  5. 大数据互联网架构阶段 Redis(二)
  6. Question of the Day: Microsoft | Database, Multiple Questions in One
  7. scrumndash;yesterday once more
  8. “阿法狗”之父:关于围棋,人类3000年来犯了一个错
  9. 使用html() undefined_SweetAlert2使用教程
  10. 秒表设计实验报告C语言,电子秒表设计实验报告
  11. Ubuntu下QT的安装配置
  12. Linux-常用工具
  13. 10种流行的Java框架
  14. python神经网络编程 豆瓣,神经网络算法python实现
  15. 猫眼电影诛仙评论爬取并进行数据分析
  16. js实现个任意位正小数,向上进位
  17. 【Python学习记录】Numpy广播机制(broadcast)
  18. 模糊测试工具Sulley开发指南(3)——整体介绍
  19. android 很多牛叉界面库github地址
  20. 字符串操作,截取最后一个逗号

热门文章

  1. 如何在不同开发语言中使用绑定变量_linux C/C++服务器后台开发面试题总结(编程语言篇)...
  2. java 解析时间字符串_Java8解析给定字符串的日期或日期时间格式
  3. pb90代码如何连接sql2008r2_RabbitMQ各种交换机机制,代码实践篇
  4. 宝塔可以修改服务器内存限制吗,宝塔内存使用率很高的解决方法 cpu过高这样做!...
  5. c语言中next如何用,c语言的数据结构中,next是如何指向下一个元素的?
  6. oracle数据库修改归档和非归档模式
  7. html lt p gt 标签的属性,科技常识:html中amp;lt;tableamp;gt;标签的各种属性介绍_table的使用...
  8. php 10进制位数保持,php 任意进制的数转换成10进制功能实例
  9. git commit撤销_Git 实用操作:撤销 Commit 提交
  10. python中for语句的使用_python中for in的用法