zoukankan      html  css  js  c++  java
  • 模型压缩(0)

    模型压缩出了一系列文章,包括 MobileNet,Xception,ShuffleNet,SqueezeNet等,对相关论文进行阅读与总结。

    CNN模型设计研究点
    • 模型压缩:

      对pre-trained的模型进行压缩,使其变成小模型,如采用网络剪枝和量化等

    • layer优化:

      采用1x1的小卷积核,可分解卷积(factorized convolution)结构,模块化结构(blocks, modules)

    • 网络架构设计与优化:

      网络深度、Resnet残差连接(bypass connection, shortcut)

    • 组合优化:

      不同超参数、网络结构、优化其等的组合优化

    模型压缩Background

    增加网络的深度有利于提高Accuracy

    在Accuracy接近的情况下,参数量少的模型更有优势:

    • 高效的分布式训练:

      服务器间通信影响分布式CNN训练的computation performance, 小模型对通信需求低

    • 减少通信开销:

      自动驾驶等应用中经常要更新模型,小的model需要的额外通信开销小,更容易更新

    • 减小内存消耗:

      利于在小内存的硬件上部署,如FPGA

    常见模型压缩技术
    • 奇异值分解 (Singular Value Decomposition, SVD)
    • 网络剪枝(Network Pruning):

      网络剪枝和稀疏矩阵(调整卷积方式)

      通过dropout,L1/L2-regularization等能产生权重稀疏性的方法训练体积和密度都很大的网络,

      把网络中贡献小(也就是被稀疏过)的权重裁剪掉,相当于去除一些冗余连接,

      最后对模型做一下fine-tune,得到30%的压缩率。但是效率提高上不适合大多数通用CPU,

      因为存储不连续,索引权重时容易发生Cache miss,得不偿失。

    • 深度压缩(Deep Compression):

      网络剪枝、数字化(quantization)、Huffman编码

    • 硬件加速器 (Hardware Accelerator)
    Reference

    CNN网络优化学习总结——从MobileNet到ShuffleNet

  • 相关阅读:
    Git 实战教程
    Github 快速上手实战教程
    02.制作一个自己的 Java 编辑器
    Eclipse代码自动提示设置
    java.lang.SuppressWarnings的注解简介
    01.Java 开发简单的计算器
    10个相见恨晚的 Java 在线练手项目
    git 1
    cocos3.2 搭建开发环境
    love 音效
  • 原文地址:https://www.cnblogs.com/fighting-lady/p/8903699.html
Copyright © 2011-2022 走看看