• 模型优化整体方向概述


    优化方向一:计算优化

    >>模型结构优化

    针对业务特点,设计精度高、鲁棒性强深度学习模型,比如一些精度网络的设计:ResNet, MobileNet, GoogleNetYOLOSSD

    >>深度模型剪枝

    模型剪枝分:结构化剪枝和非结构化剪枝

    结构化剪枝

    1. 滤波器剪枝:对卷积核进行纵向修剪
    2. 通道剪枝:对卷积核进行横向修剪
    3. 层剪枝:直接删除整个卷积层

    非结构化剪枝

    1. 细粒度剪枝:对连接或神经元进行剪枝,类型dropout操作
    2. 向量剪枝:比细粒度剪枝粒度更大,对卷积核内部剪枝,类似dropconnect操作
    3. 卷积核剪枝:去除某个卷积核,类似droplayer

    优缺点: 受底层计算平台限制较多,精度损失明显失效,适用于精度不敏感的模型推理应用场景

    >>深度模型量化

    模型量化方法:将float-32映射到int类型,分为:线性量化和非线性量化

    1. 线性量化:float-32映射到int的间隔相同,对称量化
    2. 非线性量化:float-32映射到int类型间隔不同,非对称量化
    3. 随机量化:与非对称量化类型,在量化中引入噪音

    量化类型:

    1. 动态量化:网络训练后量化。根据不同的输入,计算出不同的缩放因子,性能差、用于非常大的模型
    2. 静态量化:网络训练后量化。将缩放因子固定住,性能比动态量化好,适用中大型模型
    3. 量化感知:网络训练中量化。将量化插入到网络中,边训练边量化,训练速度低,精度高

    优缺点: 技术适用较广,加速明显。

    >>深度模型蒸馏

    teacher模型指导student模型,以期待提高student模型精度,一般来说,teacher模型精度高,不过计算复杂度也大

    不适用在终端设备部署,而student模型计算复杂度虽符合终端设备部署,但精度不够,为此可采用蒸馏处理

    蒸馏更适合于分类任务,对于teacherstudent模型的选择,对蒸馏也起到一定的作用

    一般说,teacherstudents的结构越是类似,蒸馏后的两者精度差异就越小


    优化方向二:系统优化

    通信机制优化:利用分布式集群等技术,提高模型训练速度和推理速度

    可参见:https://www.usenix.org/conference/


    优化方向三:硬件推理优化

    >>深度模型推理硬件

    GPU/TPU/NPU

    >>深度模型推理加速库/部署工具:

    NCNN:腾讯公司开发的移动端平台部署工具

    TensorRT:NVIDIA公司针对自家GPU开发的部署工具

    MediaPipe: 谷歌针对自家硬件设备和深度学习框架开发的部署工具

    ONNX:微软、亚马逊等公司开发的神经网络交换格式

    除此之外还有一些深度学习框架有自己的专用部署工具如:

    TFLITE:tensorflow为自己提供的部署服务

    LibTorch:pytorch为自己提供的部署服务

  • 相关阅读:
    类和对象:运算符重载
    来实现一个DataStore的封装吧
    还在担心漏测吗?快来使用jacoco统计下代码覆盖率
    windows和ubuntu可互相ping通,无法连接xshell
    js常见面试题
    2022 CCF BDCI 返乡发展人群预测 [0.9117+]
    windows 锁屏时执行某个程序
    在 .NET 应用程序中运行 JavaScript
    批处理文件中运行指定路径下的exe文件
    vue过滤动画
  • 原文地址:https://blog.csdn.net/qq_38973721/article/details/127783607