TensorFlow模型优化:模型量化
1.模型量化需求
为了满足各种AI应用对检测精度的要求,深度神经网络结构的宽度、层数、深度以及各类参数等数量急速上升,导致深度学习模型占用了更大的存储空间,需要更长的推理时延,不利于工业化部署;目前的模型都运行在CPU,GPU,FPGA,ASIC等四类芯片上,芯片的算力有限;对于边缘设备上的芯片而言,在存储、内存、功耗及时延性方面有许多限制,推理效率尤其重要 。
作为通用的深度学习优化的手段之一,模型量化将深度学习模型量化为更小的定点模型和更快的推理速度,而且几乎不会有精度损失,其适用于绝大多数模型和使用场景 。此外,模型量化解锁了定点硬件(Fixed-pointhardware)和下一代硬件加速器的处理能力,能够实现相同时延的网络模型推理功能,硬件价格只有原来的几十分之一,尤其是FPGA,用硬件电路去实现网络推理功能,时延是各类芯片中最低的 。
TensorFlow模型优化工具包是一套能够优化机器学习模型以便于部署和执行的工具 。该工具包用途很多,其中包括支持用于以下方面的技术:
通过模型量化等方式降低云和边缘设备(例如移动设备和IoT设备)的延迟时间和推断成本 。将优化后的模型部署到边缘设备,这些设备在处理、内存、耗电量、网络连接和模型存储空间方面存在限制 。在现有硬件或新的专用加速器上执行模型并进行优化 。
根据您的任务选择模型和优化工具:
利用现成模型提高性能在很多情况下,预先优化的模型可以提高应用的效率 。
2.模型量化过程
大家都知道模型是有权重(w)和偏置(b)组成,其中w,b都是以float32存储的,float32在计算机中存储时占32bit,int8在计算机中存储时占8bit;模型量化就是用int8等更少位数的数据类型来代替float32表示模型的权重(w)和偏置(b)的过程,从而达到减少模型尺寸大小、减少模型内存消耗及加快模型推理速度等目标 。
模型量化以损失推理精度为代价,将网络中连续取值或离散取值的浮点型参数(权重w和输入x)线性映射为定点近似(int8/uint8)的离散值,取代原有的float32格式数据,同时保持输入输出为浮点型,从而达到减少模型尺寸大小、减少模型内存消耗及加快模型推理速度等目标 。定点量化近似表示卷积和反卷积如下图所示,左边是原始权重float32分布,右边是原始权重float32经过量化后又反量化后权重分布 。
文章插图
文章插图
图2.1Int8量化近似表示卷积
文章插图
文章插图
图2.2Int8量化近似表示反卷积
3.模型量化好处
减小模型尺寸,如8位整型量化可减少75%的模型大小;
减少存储空间,在边缘侧存储空间不足时更具有意义;
减少内存耗用,更小的模型大小意味着不需要更多的内存;
加快推理速度,访问一次32位浮点型可以访问四次int8整型,整型运算比浮点型运算更快;CPU用int8计算的速度更快
减少设备功耗,内存耗用少了推理速度快了自然减少了设备功耗;
支持微处理器,有些微处理器属于8位的,低功耗运行浮点运算速度慢,需要进行8bit量化 。
某些硬件加速器如DSP/NPU只支持int8
4.模型量化原理
模型前向推理过程中所有的计算都可以简化为x=w*x+b;x是输入,也叫作FeatureMap,w是权重,b是偏置;实际过程中b对模型的推理结果影响不大,一般丢弃 。原本w,x是float32,现在使用int8来表示为qw,qx;模型量化的原理就是定点(qwqx)与浮点(w,x),建立了一种有效的数据映射关系. 。不仅仅量化权重W,输入X也要量化;详解如下:
R表示真实的浮点值(w或者x),
责任编辑:lq
【TensorFlow模型优化:模型量化】
.dfma {position: relative;width: 1000px;margin: 0 auto;}.dfma a::after {position: absolute;left: 0;bottom: 0;width: 30px;line-height: 1.4;text-align: center;background-color: rgba(0, 0, 0, .5);color: #fff;font-size: 12px;content: "广告";}.dfma img {display: block;}
文章插图
推荐阅读
- 在使用MyBatis中SQL语句优化总结
- 讯维分布式可视化显控系统软件2.0版本 全新升级优化上线
- Chrome 87优化稳定性和性能,修复16个安全问题
- AI新模型可将文本转换为生动的图像
- 如何让神经声码器高效地用于序列到序列声学模型
- 简历优化服务靠谱吗?或许这是智商税
- 区块链在交通领域的应用需要做哪些优化?
- 模型NLP事件抽取方法总结
- 小米在预训练模型的探索与优化
- 一种微流控平台将微量药物输送到被称为“立方体”的小组织模型的活检中