模型量化-对称量化和非对称量化
模型量化的目的
本文的模型量化是优化深度学习模型推理过程的内存容量和内存带宽问题的概念,通过将模型参数的浮点数类型转换称整型存储的一种模型压缩技术。以可以接受的精度损失换取更少的存储开销和带宽需求,更快的计算速度,更低的能耗与占用面积。
比如int8量化,就是让原来32bit存储的数字映射到8bit存储。int8范围是[-128,127], uint8范围是[0,255]。
模型量化优点:
- 减小模型尺寸,如8位整型量化可减少75%的模型大小
- 减少存储空间,在边缘侧存储空间不足时更具有意义
- 易于在线升级,模型更小意味着更加容易传输
- 减少内存耗用,更小的模型大小意味着不需要更多的内存
- 加快推理速度,访问一次32位浮点型可以访问四次int8整型,整型运算比浮点型运算更快
- 减少设备功耗,内存耗用少了推理速度快了自然减少了设备功耗
- 支持微处理器,有些微处理器属于8位的,低功耗运行浮点运算速度慢,需要进行8bit量化
模型量化缺点:
- 模型量化增加了操作复杂度,在量化时需要做一些特殊的处理,否则精度损失更严重
- 模型量化会损失一定的精度,虽然在微调后可以减少精度损失,但推理精度确实下降
量化数据映射的实现
比如进行int8的量化,数据范围是[-128,127],最大值最小值分别是Xmax, Xmin,X_q表示量化后的数据,X_f表示浮点数据。
X_q=X_f/scale +zero
scale=(Xmax-Xmin)/(127-(-128))=(Xmax-Xmin)/255
zero=0-round(Xmin/scale)或者zero=255-round(Xmax/scale)
量化方式分为对称量化和非对称量化,其中上面是非对称量化的方式,如果是对称量化,则是将原浮点数的范围由[Xmin, Xmax]扩充为[-Xmax, Xmax],这里假定 |Xmax|>|Xmin|。然后按照上面公式转换量化值。对称量化对于正负数不均匀分布的情况不够友好,比如如果浮点数全部是正数,量化后的数据范围是[128,255], [0,127]的范围就浪费了,减弱了int8数据的表示范围。
对称量化的图示
非对称量化的图示
模型量化-对称量化和非对称量化相关推荐
- 【模型压缩】(三)——量化
一.概述 量化: 剪枝是删除不重要的权重参数,量化则是减少存储权重的bit,将权重存储在更小的空间中: 权重不需要以高精度方式存储,甚至不应该以高精度方式存储: 如果用简单的量化方式效果并不好,需要一 ...
- 隐马尔科夫模型(HMM)择时应用的量化策略
HMM模型 隐马尔科夫模型(HMM)择时应用的量化策略. 仅为研究学习使用, 不作为任何投资策略建议. 文章内容从各处整理汇总而成, 感谢各位大神分享. 具体策略代码均调试通过. 一.从大奖章讲起 ...
- Tensorflow模型优化 端侧部署 tflite 量化 稀疏 quantization sparsity
Tensorflow模型优化 文章目录 Tensorflow模型优化 为什么要模型优化 端侧部署 模型优化方式 Quantization 工具包支持 32 bit float ->16 bit ...
- 量化思维与常见的量化标
转 量化思维与常见的量化指标 导读: 交易和投资让我们看清了人性的弱点.有人亏钱,就有人反向利用这些弱点而赚钱.赚钱者并不表明他们不具有人类普遍的天性,只是相比手无寸铁的散户,他们手里掌握着" ...
- 【量化入门】通过几种常见的量化策略框架,学习量化炒股
阅读原文:http://club.jr.jd.com/quant/topic/1176040 量化选股,就是通过量化思想及配套的计算机程序化来实现选股(如何选择好的股票)和择时(如何在合适的时间进行合 ...
- 很燃基于掘金量化台的《Python量化交易战新简
原 很燃!基于掘金量化平台的<Python量化交易实战>新书简介 内容简介: 在目前不断变化.蓬勃发展的中国资本市场,量化投资作为新兴的投资方法,引来越来越多的关注,使用量化投资技术的证券 ...
- 很燃基于掘金量化平台的《Python量化交易实战》新书介
原 很燃!基于掘金量化平台的<Python量化交易实战>新书简介 内容简介: 在目前不断变化.蓬勃发展的中国资本市场,量化投资作为新兴的投资方法,引来越来越多的关注,使用量化投资技术的证券 ...
- 金融平台(掘金量化)量化PYTHON(一)-量化交易介绍
定位 掌握数据挖掘/机器学习技术的应用场景: 从事量化策略工程师.量化策略分析师方向: 目标 掌握回测框架的使用: 掌握股票的量化投资策略: 量化交易简介 了解量化交易的定义以及类型: 说明量化交易的 ...
- python量化平台怎么搭建_Python_量化投资领域, 平台, 交易策略, 项目全覆盖
Python在量化领域的现状 就跟Java在web领域无可撼动的地位一样,Python也已经在金融量化投资领域占据了重要位置,从各个业务链条都能找到相应的框架实现. 在量化投资(证券和比特币)开源项目 ...
最新文章
- jQuery css-dom
- tomcat部署与Context
- sortable vue 排序_VUE +element el-table运用sortable 拖拽table排序,实现行排序,列排序...
- 今天,我要用“数”,向你表白。
- boost的chrono模块周期计数延迟的测试程序
- 腾讯全球数字生态大会进入倒计时,原生技术专场开放云报名
- 12-贝叶斯算法(知识准备)
- 学习Haskell的一些资料
- EmEditor 常用功能
- 计算机统计分析spss试卷,《SPSS计算机统计分析方法》试卷A卷
- matlab 粒子群应用,粒子群算法程序应用
- 中了勒索病毒,该如何恢复数据?
- PyCharm中英文版本切换
- NUC140之I2C和AT24C32
- 思维题:三个箱子,一个只装苹果,一个只装橙,另一个装苹果和橙,请问?
- 神州计算机u盘启动,神州电脑如何使用U盘装系统
- Springboot整合JavaMail通过阿里企业邮箱发验证码
- 大类资产配置(二)风险预算及风险平价模型
- 计算机如何访问苹果6s的相册,苹果手机怎么连接到电脑传照片 两种方法帮你实现!...
- 未来宝宝照片合成,怎么做到的呢?
热门文章
- 安装编译QtXlsxWriter-master
- 创业一年(13)八月风高
- python中readlines方法_Python中readlines()方法有哪些功能?
- Java培训班学员该如何找工作?如何过试用期?
- python token验证失败百分百解决_Token验证失败的解决方法
- c语言表达ch是大写英文字母,C语言:将小写字母转换为大写字母。 1.倒数第三行:while ((ch=getchar())!='\n') 怎么理解呢?...
- Linux系统批量释放deleted文件占用的空间
- *分享-神奇的MLE原因-为什么结构体开的内存不大却MLE?用数组开更大还能ac???
- matlab rand字符串,在MatLab中生成随机字符串
- 我对于游戏框架的理解——框架,消息机制