当前位置:网站首页>【模型压缩】实例分析量化原理
【模型压缩】实例分析量化原理
2022-08-02 20:32:00 【AI小白龙】
1.从定点模型训练来分析量化原理:
定点模型训练是一个迁移训练的过程:在浮点网络的相应位置插入定点化处理节点(相
当于激活函数),然后在这个经过定点化的计算图上重新训练神经网络。以全连接层为例,定点模型训练函数会根据 Layer 类型的 Dense 层构建一个 TensorFlow的 dense 层(由 MatMul 和 Add 两个 OP 构成),并且在 MatMul 操作的输入、Add 操作的输出、权重张量和 MatMul 之间、偏置张量和 Add 之间增加定点化处理节点。

解析:公式Q的输入为;X(数据输入,输出,权值值,偏置值),以及统计的(或者人为设置的)最大值和最小值,其目的是将权值偏置训练迭代的结果限制在特定范围内,以减小量化损失。
公式中bitwidth(是要量化的位数16位或者8位), 如果要量化8位,那么根据以上描述
∇=2frac =xmax*128-1-1
,当xmax
确定即可求出frac
,然后Q公式即可正常计算,Q=∇*floor
中floor
就是量化的结果,再次乘以∇
就是恢复到了浮点值来完成正常的浮点训练(即定点训练只是将网络的进行了定点的限制),当量化网络的整形结果输出时也可通过乘以当前层的∇
来得到正常的浮点值。
2.以libfacedetection实例分析
本实例并未进行定点训练,直接将浮点训练结果进行了定点化,但推理部分与上面原理和操作是一致的。
(1)将浮点权值转化为整形值,保存scale值,相当于∇

保存权值和scale值

(2)根据定点原理重写推理算法,首先重写整形矩阵运算,然后利用指令集加速

关于scale的传递,卷积为输入和权值的相乘,池化的输出等于输入

两外relu激活函数的scale需要重新求得,同样向下传递:

(3)定点转浮点的算子,将最终结果转成浮点
边栏推荐
- Xcode13.1 run engineering error fatal error: 'IFlyMSC/IFly h' file not found
- 李沐动手学深度学习V2-BERT预训练和代码实现
- js how to get the browser zoom ratio
- Implement fashion_minst clothing image classification
- Details in C# you don't know
- ImageNet下载及处理
- 汉源高科千兆4光4电工业级网管型智能环网冗余以太网交换机防浪涌防雷导轨式安装
- 56.【全局变量和局部变量专题】
- Electrical diagram of power supply system
- Likou Question of the Day - Day 46 - 344. Reverse Strings
猜你喜欢

【手撕AHB-APB Bridge】~ AMBA总线 之 APB

美国爱荷华州立大学| Improving Distantly Supervised Relation Extraction by Natural Language Inference(通过自然语言推理改进远程监督关系提取)

Informatics orsay a tong (1258: 【 9.2 】 digital pyramid)

php 单引号 双引号 -> => return echo

Day35 LeetCode

Flutter 常见异常分析

用了TCP协议,就一定不会丢包吗?

go——垃圾回收机制(GC)

Thread线程类基本使用(上)

A brief discussion on the transformation of .NET legacy applications
随机推荐
postgresql autovaccum自动清理
Axure9的元件用法
美国爱荷华州立大学| Improving Distantly Supervised Relation Extraction by Natural Language Inference(通过自然语言推理改进远程监督关系提取)
解道6-编程技术3
YOLOv5+BiSeNet——同时进行目标检测和语义分割
【手撕AHB-APB Bridge】~ AMBA总线 之 APB
Tencent YunMeng every jie: I experienced by cloud native authors efficiency best practices case
广东省数字经济发展指引 1.0之建成数据安全保障体系
如何使用windbg查看C#某个线程的栈大小 ?
网上那么多教人赚钱的方法,但是你实际上是靠什么赚钱的呢?
How to quickly compare two byte arrays for equality in .NET
Wiring diagrams of switches, motors, circuit breakers, thermocouples, and meters
Thread线程类基本使用(下)
C#异步和多线程
Bee 事务注解 @Tran 使用实例
arm64麒麟安装paddlehub(国产化)
ICLR 2022最佳论文:基于对比消歧的偏标签学习
模糊查询like用法实例(Bee)
信息学奥赛一本通(1259:【例9.3】求最长不下降序列)
【SLAM】DM-VIO(ros版)安装和论文解读
