0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么?不用GPU也能加速你的YOLOv3深度学习模型

新机器视觉 来源:量子位 作者:量子位 2021-06-10 15:33 次阅读

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

或者手上只有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的话,可以参考下表。

ce8f673a-c9b7-11eb-9e57-12bb97331649.png

网友:这个框架会比传统的机器学习框架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

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10434

    浏览量

    206521
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4413

    浏览量

    126640
  • 数据集
    +关注

    关注

    4

    文章

    1178

    浏览量

    24347
  • voc
    voc
    +关注

    关注

    0

    文章

    89

    浏览量

    15571

原文标题:不用GPU,稀疏化也能加速你的YOLOv3深度学习模型

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA在深度学习应用中或将取代GPU

    现场可编程门阵列 (FPGA) 解决了 GPU 在运行深度学习模型时面临的许多问题 在过去的十年里,人工智能的再一次兴起使显卡行业受益匪浅。英伟达 (Nvidia) 和 AMD 等公
    发表于 03-21 15:19

    深入浅出Yolov3Yolov4

    Yolov3是目标检测Yolo系列非常非常经典的算法,不过很多同学拿到Yolov3或者Yolov4的cfg文件时,并不知道如何直观的可视化查看网络结构。
    的头像 发表于 01-11 10:42 239次阅读
    深入浅出<b class='flag-5'>Yolov3</b>和<b class='flag-5'>Yolov</b>4

    如何基于深度学习模型训练实现工件切割点位置预测

    Hello大家好,今天给大家分享一下如何基于深度学习模型训练实现工件切割点位置预测,主要是通过对YOLOv8姿态评估模型在自定义的数据集上训
    的头像 发表于 12-22 11:07 338次阅读
    如何基于<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>训练实现工件切割点位置预测

    如何基于深度学习模型训练实现圆检测与圆心位置预测

    Hello大家好,今天给大家分享一下如何基于深度学习模型训练实现圆检测与圆心位置预测,主要是通过对YOLOv8姿态评估模型在自定义的数据集上
    的头像 发表于 12-21 10:50 671次阅读
    如何基于<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>训练实现圆检测与圆心位置预测

    GPU深度学习中的应用与优势

    学习中究竟担当了什么样的角色?又有哪些优势呢?一、GPU加速深度学习训练并行处理GPU的核心理念
    的头像 发表于 12-06 08:27 706次阅读
    <b class='flag-5'>GPU</b>在<b class='flag-5'>深度</b><b class='flag-5'>学习</b>中的应用与优势

    深度学习YOLOv3 模型设计的基本思想

    在检测任务中,将图中C0后面的平均池化、全连接层和Softmax去掉,保留从输入到C0部分的网络结构,作为检测模型的基础网络结构,也称为骨干网络 YOLOv3模型会在骨干网络的基础上,再添加检测相关的网络模块
    发表于 10-17 10:32 144次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>YOLOv3</b> <b class='flag-5'>模型</b>设计的基本思想

    YOLOv3的darknet模型先转为caffe模型后再转为fp32bmodel,模型输出和原始模型输出存在偏差是怎么回事?

    YOLOv3的darknet模型先转为caffe模型后再转为fp32bmodel,模型输出和原始模型输出存在偏差?
    发表于 09-19 06:26

    请问k210加载多个模型吗?

    如题。目前k210已经跑了一个YOLOv3的人脸检测模型,我想再跑一个人脸识别的模型,可以吗?
    发表于 09-14 08:58

    【KV260视觉入门套件试用体验】KV260部署yolov3实现车辆和行人检测

    \'yolov3/\' \\ --gpu 0 运行程序即可得到需要的pb文件。在运行vai_q_tensorflow之前准备以下三个文件,使用 TensorFlow 1.x 训练模型会创建一个文件夹,其中包含
    发表于 08-08 14:29

    三种主流模型部署框架YOLOv8推理演示

    深度学习模型部署有OpenVINO、ONNXRUNTIME、TensorRT三个主流框架,均支持Python与C++的SDK使用。对YOLOv5~Y
    的头像 发表于 08-06 11:39 1827次阅读

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8-seg实例分割模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 目标检测模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的目标检测
    的头像 发表于 06-30 10:43 448次阅读
    在AI爱克斯开发板上用OpenVINO™<b class='flag-5'>加速</b><b class='flag-5'>YOLOv</b>8-seg实例分割<b class='flag-5'>模型</b>

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8-seg实例分割模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 目标检测模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的目标检测
    的头像 发表于 06-05 11:52 598次阅读
    在AI爱克斯开发板上用OpenVINO™<b class='flag-5'>加速</b><b class='flag-5'>YOLOv</b>8-seg实例分割<b class='flag-5'>模型</b>

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评YOLOv8的分类
    的头像 发表于 05-26 11:03 716次阅读
    AI爱克斯开发板上使用OpenVINO<b class='flag-5'>加速</b><b class='flag-5'>YOLOv</b>8目标检测<b class='flag-5'>模型</b>

    Yolov5算法解读

    中,这几个模型的结构基本一样,不同的是depth_multiple模型深度和width_multiple模型宽度这两个参数。 yolov5主
    的头像 发表于 05-17 16:38 4259次阅读
    <b class='flag-5'>Yolov</b>5算法解读

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的分类
    的头像 发表于 05-12 09:08 838次阅读
    在AI爱克斯开发板上用OpenVINO™<b class='flag-5'>加速</b><b class='flag-5'>YOLOv</b>8目标检测<b class='flag-5'>模型</b>