
AI模型压缩、加速及移动端部署
文章平均质量分 74
深度神经网络在人工智能的应用中,包括语音识别、计算机视觉、自然语言处理等各方面,在取得巨大成功的同时,这些深度神经网络需要巨大的计算开销和内存开销,严重阻碍了资源受限下的使用。本章总结了模型压缩、加速一般原理和方法,以及在移动端如何部署。
Mrrunsen
这个作者很懒,什么都没留下…
展开
-
【无标题】
YOLOv4 介绍及其模型优化方法一、YOLOv4 介绍2020 年 4 月,YOLOv4 在悄无声息中重磅发布,在目标检测领域引起广泛的讨论。在 YOLO 系列的原作者 Joseph Redmon 宣布退出 CV 领域后,表明官方不再更新 YOLOv3。但在过去的两年中,AlexeyAB 继承了 YOLO 系列的思想和理念,在 YOLOv3 的基础上不断进行改进和开发,于今年 4 月发布 YOLOv4,并得到了原作者 Joseph Redmon 的承认。YOLOv4 可以使用传统的 GPU 进行训原创 2022-02-10 22:54:44 · 1481 阅读 · 0 评论 -
YOLOv5 实现无人机识别
YOLOv5发布至今,已经迭代多个版本,是唯一基于pytorch框架的YOLO系列的模型框。简单易用,特别适合自定义目标检测与对象检测。只要用了Pytorch版本YOLOv5框架,可以毫不夸张的说两个小时就可以学会目标检测。01第一步数据准备想用视觉识别一下空中飞行的无人机,识别对象有: 1:鸟类bird2:无人机UAV3:直升机helicopter想通过自己创建一个数据集,训练yolov5,在调用detect.py来识别一下效果。,时长00:11百度了一下原创 2022-02-10 22:47:05 · 1967 阅读 · 0 评论 -
加速深度学习在线部署,TensorRT安装及使用教程
1 什么是TensorRT一般的深度学习项目,训练时为了加快速度,会使用多GPU分布式训练。但在部署推理时,为了降低成本,往往使用单个GPU机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深度学习环境,如caffe,TensorFlow等。由于训练的网络模型可能会很大(比如,inception,resnet等),参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。这对于那些高实时性的应用场合是致命的,比如自动驾驶要求实时目标检测,目标追踪等。所以原创 2022-02-10 22:40:54 · 364 阅读 · 0 评论 -
TensorRT 加速部署
NVIDIA TensorRT 是用于高性能深度学习推理的软件开发工具包,能够以更高的吞吐量和更低的延迟运行深度学习模型。借助 TensorRT,可以优化当前主要框架(例如 Caffe 2、Chainer、Microsoft Cognitive Toolkit、MxNet 和 PyTorch)中训练的神经网络模型,并将模型部署到大规模数据中心、嵌入式或产品平台中。在准确度几乎不损失的情况下,可以大大提升模型在端侧、边缘侧以及云端的推理速度,有利于产品部署。(1)TensorRT 加速原理 ...原创 2022-02-10 22:33:23 · 2882 阅读 · 0 评论 -
TensorRT系列 --加速原理
1. 加速的必要性如上图所示,训练(training)是双向运算,而推理(inference)为单向运算。为了提高训练速度,会使用多GPU分布式训练;而部署推理时,为了降低成本,往往使用单个GPU机器或嵌入式平台(比如 NVIDIA Jetson)进行部署;在实际项目中,一个项目可能会使用多个模型,而模型使用的框架也不能确保统一化。使用TensorRT加速最直接的效果如下: 加快推理速度,降低延迟。 推理框架统一化,方便部署。 2. 优化原理TensorRT优化方原创 2022-02-10 22:28:34 · 2567 阅读 · 1 评论 -
TensorRT系列1--安装配置
TensorRT是一个高性能的深度学习推理(Inference)优化器,可以为深度学习应用提供低延迟、高吞吐率的部署推理。TensorRT可用于对超大规模数据中心、嵌入式平台或自动驾驶平台进行推理加速。TensorRT支持TensorFlow、Caffe、Mxnet、Pytorch等几乎所有的深度学习框架,将TensorRT和NVIDIA的GPU结合起来,能在几乎所有的框架中进行快速和高效的部署推理。TensorRT 在运行时,加载一个已经训练好的神经网络,创建一个经过内部高度优化的引擎(engin..原创 2022-02-10 22:27:32 · 597 阅读 · 0 评论 -
ONNX简化节点和修改教程
在训练完深度学习的pytorch或者tensorflow模型后,有时候需要把模型转成 onnx,但是很多时候,很多节点比如cast节点,Identity 这些节点可能都不需要,我们需要进行简化,这样会方便我们把模型转成ncnn或者mnn等这些端侧部署的模型格式或者通过tensorRT进行部署。方法1:使用 onnx-simplifier 进行精简一个方法是使用[onnx-simplifier](https://github.com/daquexian/onnx-simplifier)进...原创 2022-02-10 22:19:56 · 2098 阅读 · 0 评论 -
【模型推理】openvino 推理实践
本教程详细记录了在 ubuntu 上使用 openvino 进行推理的方法。1、安装 openvino 和 open_model_zoo 可以参考我这篇 《【模型推理】ubuntu 配置和使用 openvino》进行 openvino 的环境配置。2、典型模型下载cdopen_model_zoo/tools/downloader## 下载典型模型./downloader.py--all-j8 完了会生成两个文件夹,intel 和 public,...原创 2021-10-13 21:59:53 · 481 阅读 · 0 评论 -
【模型推理】ubuntu 配置和使用 openvino
1、clone openvinogitclone--recursivehttps://gitee.com/openvinotoolkit-prc/openvino.git 若在 clone 一些三方依赖外链时超时,可单独转 gitee 进行 clone 。2、编译 安装依赖:chmod+x install_build_dependencies.sh./install_build_dependencies.sh 编译:mkdirbuild...原创 2021-10-13 21:58:13 · 378 阅读 · 0 评论 -
简化 onnx upsample 算子
本文介绍了简化 onnx upsample 算子的方法。 实际部署中经常会涉及到 pytorch / tensorflow / darknet -> onnx 的模型转换过程。本身模型转换过程就比较麻烦(当然 pytorch export onnx 十分方便),成了后你经常又会发现 convert successed 的 onnx model 看起来面目全非,如下。这样一方面看起来不够清爽,另一方面算子细粒度太小,不利于部署。 这里先拿转换 onnx 时的 upsample 算子简..原创 2021-10-13 21:56:21 · 396 阅读 · 0 评论 -
老潘的AI部署以及工业落地学习之路
Hello大家好,我是老潘,好久不见各位~最近在复盘今年上半年做的一些事情,不管是训练模型、部署模型搭建服务,还是写一些组件代码等,零零散散是有一些产出。虽然有了一点点成果,但仍觉着缺点什么。作为深度学习算法工程师,训练模型和部署模型是最基本的要求,每天都在重复着这个工作,但偶尔静下心来想一想,还是有很多事情需要做的: 模型的结构,因为上线业务需要,更趋向于稳定有经验的,而不是探索一些新的结构 模型的加速仍然不够,还没有压榨完GPU的全部潜力 深感还有很多很多需要学习的地方啊。转载 2021-10-13 21:51:39 · 343 阅读 · 0 评论 -
AI部署系列:你知道模型权重的小秘密吗?
深度学习中,我们一直在训练模型,通过反向传播求导更新模型的权重,最终得到一个泛化能力比较强的模型。同样,如果我们不训练,仅仅随机初始化权重,同样能够得到一个同样大小的模型。虽然两者大小一样,不过两者其中的权重信息分布相差会很大,一个脑子装满了知识、一个脑子都是水,差不多就这个意思。所谓的AI模型部署阶段,说白了就是将训练好的权重挪到另一个地方去跑。一般来说,权重信息以及权重分布基本不会变(可能会改变精度、也可能会合并一些权重)。不过执行模型操作(卷积、全连接、反卷积)的算子会变化,可能从Pyto原创 2021-10-13 21:50:21 · 787 阅读 · 0 评论 -
TensorRT部署深度学习模型
对需要部署模型的同志来说,掌握用tensorRT来部署深度学习模型的方法是非常有用的。通过Nvidia推出的tensorRT工具来部署主流框架上训练的模型,以便提高模型推断的速度,占用更少的的设备内存。>>加入极市CV技术交流群,走在计算机视觉的最前沿1.背景目前主流的深度学习框架(caffe,mxnet,tensorflow,pytorch等)进行模型推断的速度都并不优秀,在实际工程中用上述的框架进行模型部署往往是比较低效的。而通过Nvidia推出的tensorRT工具来部署主流框架.原创 2021-10-13 21:42:39 · 233 阅读 · 1 评论 -
Tensorflow Lite模型部署之模型转换
TensorFlow Lite的设计旨在在各种设备上高效执行模型。这种高效部分源于在存储模型时,采用了一种特殊的格式。TensorFlow模型在能被TensorFlow Lite使用前,必须转换成这种格式。转换模型减小了模型文件大小,并引入了不影响准确性(accuracy)的优化措施(optimizations)。开发人员可以在进行一些取舍的情况下,选择进一步减小模型文件大小,并提高执行速度。您可以使用TensorFlow Lite转换器(converter)选择要执行的优化措施。因为Ten...原创 2021-10-13 21:39:47 · 527 阅读 · 0 评论 -
深度学习模型部署资料总结
【PyTorch 篇】 通过Flask 部署 http://t.cn/EG7Bj7J 通过Clipper部署 http://clipper.ai/ 通过AWS Lambda部署 http://t.cn/R1ehRv8 通过Now Zeit部署 https://zeit.co/now 通过EuclidesDB部署 http://t.cn/EG7rcZo 通过WebDNN部署 http://t.cn/RSfE5r6 ...原创 2021-10-13 21:38:58 · 269 阅读 · 0 评论 -
模型部署翻车记:pytorch转onnx踩坑实录
在深度学习模型部署时,从pytorch转换onnx的过程中,踩了一些坑。本文总结了这些踩坑记录,希望可以帮助其他人。首先,简单说明一下pytorch转onnx的意义。在pytorch训练出一个深度学习模型后,需要在TensorRT或者openvino部署,这时需要先把Pytorch模型转换到onnx模型之后再做其它转换。因此,在使用pytorch训练深度学习模型完成后,在TensorRT或者openvino或者opencv和onnxruntime部署时,pytorch模型转onnx这一步是必不可少的。接原创 2021-10-13 21:37:35 · 4201 阅读 · 0 评论 -
OpenPPL|模型部署优化的学习路线
模型部署优化这个方向其实比较宽泛。从模型完成训练,到最终将模型部署到实际硬件上,整个流程中会涉及到很多不同层面的工作,每一个环节对技术点的要求也不尽相同。部署的流程大致可以分为以下几个环节:一、模型转换从训练框架得到模型后,根据需求转换到相应的模型格式。模型格式的选择通常是根据公司业务端 SDK 的需求,通常为 caffe 模型或 onnx 模型,以方便模型在不同的框架之间适配。该环节的工作需要对相应的训练框架以及 caffe/onnx 等模型格式有所了解。.原创 2021-10-13 21:36:05 · 539 阅读 · 0 评论