嵌入式视觉
双非本科,曾4个月考研上岸211硕士,现大厂算法开发工程师,从事视觉算法开发和模型压缩部署工作,终身学习践行者。想要了解更多干货和开源项目,欢迎关注我的公众号-嵌入式视觉。
展开
-
海思 NNIE 芯片开发笔记
NNIE 是Neural Network Inference Engine 的简称,是海思媒体 SoC 中专门针对神经网络特别是深度学习卷积神经网络进行加速处理的硬件单元,可以理解为 CNN 加速器。原创 2023-04-26 14:15:31 · 1062 阅读 · 0 评论 -
NCNN 模型推理详解及实战
本文首先描述了 ncnn 推理框架的依赖库的知识,及相关 cpu 和内存硬件特性描述。最后结合 shufflenet sample 解析了,模型推理的全部流程,详解了 sample 代码的每个细节。原创 2023-04-26 14:13:45 · 969 阅读 · 0 评论 -
模型压缩-网络量化概述
所谓量化,其实可以等同于低精度(Low precision)概念,常规模型精度一般使用 FP32(32 位浮点数,单精度)存储模型权重参数,低精度则表示使用 INT8、FP16 等权重数值格式。模型量化(Model Quantization,也叫网络量化)过程分为两部分:将模型的单精度参数(一般 FP32-32位浮点参数)转化为低精度参数(一般 INT8-8 位定点参数),以及模型推理过程中的浮点运算转化为定点运算,这个需要推理框架支持。原创 2023-03-25 16:46:54 · 667 阅读 · 0 评论 -
基于pytorch实现模型剪枝
所谓模型剪枝,其实是一种从神经网络中移除"不必要"权重或偏差(weigths/bias)的模型压缩技术。本文深入描述了 pytorch 框架的几种剪枝 API,包括函数功能和参数定义,并给出示例代码。原创 2023-02-24 16:42:12 · 1342 阅读 · 4 评论 -
深度学习模型压缩方法概述
模型压缩算法旨在将一个大模型转化为一个精简的小模型。工业界的模型压缩方法有:知识蒸馏、轻量化模型架构、剪枝、量化。原创 2023-02-24 16:38:57 · 526 阅读 · 0 评论 -
模型压缩-剪枝算法详解
模型剪枝是应用非常广的一种模型压缩方法,其可以直接减少模型中的参数量。本文会对模型剪枝的定义、发展历程、分类以及算法原理进行详细的介绍。原创 2023-02-23 15:58:21 · 914 阅读 · 0 评论 -
深度学习模型部署流程概述
深度学习和计算机视觉方向除了算法训练/研究,还有两个重要的方向: 模型压缩(模型优化、量化)、模型部署(模型转换、后端功能SDK开发)。所谓模型部署,即将算法研究员训练出的模型部署到具体的端边云芯片平台上,并完成特定业务的视频结构化应用开发。现阶段的平台主要分为云平台(如英伟达 GPU)、手机移动端平台(ARM 系列芯片)和其他嵌入式端侧平台(海思 3519、安霸 CV22、地平线 X3、英伟达 jetson tx2 等芯片)。原创 2022-09-30 17:31:51 · 1272 阅读 · 0 评论 -
TensorRT 基础笔记
TensorRT 是 NVIDIA 官方推出的基于 CUDA 和 cudnn 的高性能深度学习推理加速引擎,能够使深度学习模型在 GPU 上进行低延迟、高吞吐量的部署。采用 C++ 开发,并提供了 C++ 和 Python 的 API 接口,支持 TensorFlow、Pytorch、Caffe、Mxnet 等深度学习框架,其中 Mxnet、Pytorch 的支持需要先转换为中间模型 ONNX 格式。截止到 2021.4.21 日, TensorRT 最新版本为 v7.2.3.4。原创 2022-09-15 15:04:48 · 824 阅读 · 0 评论 -
ONNX 模型分析与使用
ONNX 的本质只是一套开放的 ML 模型标准,模型文件存储的只是网络的拓扑结构和权重(其实每个深度学习框架最后保存的模型都是类似的),脱离开框架是没办法对模型直接进行 inference的。原创 2022-09-15 15:02:46 · 914 阅读 · 0 评论 -
神经网络模型复杂度分析
终端设备上运行深度学习算法需要考虑内存和算力的需求,因此需要进行模型复杂度分析,涉及到模型计算量(时间/计算复杂度)和模型参数量(空间复杂度)分析。为了分析模型计算复杂度,一个广泛采用的度量方式是模型推断时浮点运算的次数 (FLOPs),即模型理论计算量,但是,它是一个间接的度量,是对我们真正关心的直接度量比如速度或者时延的一种近似估计。原创 2022-09-15 14:54:11 · 931 阅读 · 0 评论 -
一文搞懂模型量化算法
模型量化是指将神经网络的浮点算法转换为定点。量化有一些相似的术语,低精度(Low precision)可能是常见的。低精度模型表示模型权重数值格式为 FP16(半精度浮点)或者 INT8(8位的定点整数),但是目前低精度往往就指代 INT8。常规精度模型则一般表示模型权重数值格式为 FP32(32位浮点,单精度)。混合精度(Mixed precision)则在模型中同时使用 FP32 和 FP16 的权重数值格式。 FP16 减少了一半的内存大小。原创 2022-09-16 12:06:16 · 2233 阅读 · 4 评论 -
卷积神经网络压缩方法总结
前端压缩,是指在不改变原网络结构的压缩技术,主要包括知识蒸馏、紧凑的模型结构涉及以及滤波器(filter)层面的剪枝(结构化剪枝)等;后端压缩,是指包括低秩近似、未加限制的剪枝(非结构化剪枝/稀疏)、参数量化以及二值网络等,目标在于尽可能减少模型大小,会对原始网络结构造成极大程度的改造。原创 2022-09-15 14:57:32 · 282 阅读 · 0 评论 -
万字长文解析 MobileNetv1 模型
MobileNet 论文的主要贡献在于提出了一种深度可分离卷积架构(DW+PW 卷积),先通过理论证明这种架构比常规的卷积计算成本(Mult-Adds)更小,然后通过分类、检测等多种实验证明模型的有效性。原创 2022-09-15 14:37:21 · 759 阅读 · 0 评论 -
万字长文解析 ShuffleNetv2 模型
神经网络结构的设计基本由间接的计算复杂度主导,例如 FLOPs,但是直接的度量如速度,还取决于其他因素,例如内存的获取损耗和平台特性。因此,我们将使用直接的标准衡量,而不仅仅是 FLOPs。因此本文建议直接在目标平台上用直接度量进行测试。基于一系列控制条件实验,作者提出了设计高效网络结构的一些实用指导思想,并据此提出了一个称之为 ShuffleNet V2 的新结构。综合的对比实验证明了作者的模型在速度和准确性上取得了最佳的平衡(state-of-the-art)。原创 2022-09-15 14:25:12 · 625 阅读 · 0 评论 -
万字长文解析 RepVGG 模型
论文的主要贡献在于:提出了一种简单而强有力的 CNN 架构 RepVGG,相比 EfficientNet、RegNet 等架构,RepVGG 具有更佳的精度-速度均衡;提出采用重参数化技术对 plain 架构进行训练-推理解耦;在图像分类、语义分割等任务上验证了 RepVGG 的有效性。原创 2022-09-15 14:29:13 · 1542 阅读 · 0 评论 -
万字长文解析 CSPNet 模型
作者认为网络推理成本过高的问题是由于网络优化中的梯度信息重复导致的。CSPNet 通过将梯度的变化从头到尾地集成到特征图中,在减少了计算量的同时可以保证准确率。CSP(Cross Stage Partial Network,简称 CSPNet) 方法可以减少模型计算量和提高运行速度的同时,还不降低模型的精度,是一种更高效的网络设计方法,同时还能和Resnet、Densenet、Darknet 等 backbone 结合在一起。原创 2022-09-15 14:42:12 · 795 阅读 · 0 评论 -
万字长文解析 VoVNet模型
因为 DenseNet 通过用密集连接,来聚合具有不同感受野大小的中间特征,因此它在对象检测任务上表现出良好的性能。虽然特征重用(feature reuse)的使用,让 DenseNet 以少量模型参数和 FLOPs,也能输出有力的特征,但是使用 DenseNet 作为 backbone 的目标检测器却表现出了运行速度慢和效率低下的弊端。作者认为是密集连接(dense connection)带来的输入通道线性增长,从而导高内存访问成本和能耗。为了提高 DenseNet 的效率,作者提出一个新的更高效的网络。原创 2022-09-15 14:47:44 · 513 阅读 · 0 评论 -
轻量级模型设计与部署总结
轻量级网络的手动设计目前还没用广泛通用的准则,只有一些指导思想,和针对不同芯片平台(不同芯片架构)的一些设计总结,建议大家从经典论文中吸取指导思想和建议,然后自己实际做各个硬件平台的部署和模型性能测试。原创 2022-11-24 02:07:01 · 3095 阅读 · 42 评论