量化及定点化模型压缩常见方法、特定及优缺点整理

模型压缩简答说就是将庞大的深度学习模型进行压缩,常见方法包括五大类,分别是剪枝、量化、正则化、知识蒸馏、条件计算。

量化是模型压缩常用方法之一,本文不完全包括了一些神经网络Fixed-Point Training(定点化训练)相关的方法进行了详细整理,拆分,并对优缺点进行了对比分析。

资源整理自网络,资源获取见源地址:https://github.com/A-suozhang/awesome-quantization-and-fixed-point-training

本文的最终目的是面向FPGA等嵌入式设备的NN 部署/训练,的一个软件仿真工具。为了Scalability,会尝试实现一些较为General的定点训练技巧现方式

以及诸如MobileNet, ShuffleNet 等轻量化网络设计

Quantization的两种主要方式

基于CodeBook的(Deep Compression) :实际参数还是高精度的,无法利用定点计算进行加速,仅能减少存储

基于定点数(Fixed Point表示),(IBM的FP8也可以归入此类) :可利用定点计算加速,故本文主要采取该方式

目前预计的几种场景

Post-Training Quantization : 在完成FP训练之后的压缩,产生定点的W/A进行部署

Example:Distillation,EntropyConstraintQ, IncrementalQ

 Quantize-Aware Training : 在训练过程中考虑定点的影响,在训练中采取Fixed,产生定点的W/A进行部署

Example:StraightThroughActivation的方法(训练时用Fixed Inference,但是梯度是对应的全精度副本做)

 Fixed-Point Training: 训练过程中进行纯定点(W/G/A),模拟在纯定点设备上进行训练

Example:WAGE

有点激进,不知道是否能实现

 Binary-Network

扫描下方二维码可以订阅哦!

DeepLearning_NLP

深度学习与NLP

       商务合作请联系微信号:lqfarmerlq

(0)

相关推荐