当前位置:   article > 正文

训练后量化(PTQ) 工作流理解

ptq量化

目前神经网络在许多前沿领域的应用取得了较大进展,但经常会带来很高的计算成本,对内存带宽和算力要求高。另外降低神经网络的功率和时延在现代网络集成到边缘设备时也极其关键,在这些场景中模型推理具有严格的功率和计算要求。神经网络量化是解决上述问题有效方法之一,但是模型量化技术的应用会给模型带来额外噪音,从而导致精度下降,因此工程师对模型量化过程的理解有益于提高部署模型的精度。本文主要介绍训练后量化 (Post-training quantization,PTQ) 的关键基础技术,首先介绍了 PTQ 的定义、量化的数学定义即量化公式、量化模拟、range setting,最后介绍了 PTQ 的整体技术流程。

0. PTQ

训练后量化 (PTQ) 算法将训练过的 FP32 网络直接转换为定点计算的网络,过程中无需对原始模型进行任何训练。只对几个超参数调整就可完成量化过程,量化模型以一种更有效的计算方式进行模型推理。量化后模型中的参数使用低 bit 表示,在数据搬移时降低了带宽要求,在计算过程中一般硬件对于低 bit 整形数据具有更高的标称算力,因此模型量化的优化方案在多数情况下可获得较大的推理速度提升,此方法已被广泛应用于大量的端侧和云侧部署场景。

1. Uniform affine quantization

‍量化一般是指将 32bit 存储的数据映射为 低 bit 整形数据,量化后可以借助于硬件对低 bit 数据的计算优势对神经网络平算子进行加速计算。在现有的量化方法中,工程化时一般使用均匀量化,这样更有益于底层硬件对低 bit 数据进行计算优化。均匀量化有两种情况,分别为非对称量化和对称量化,其中对称量化是非对称量化的一个特例,本文不再讲述。

仿射量化也称为非对称量化,其由三个参数定义,分别为 s(scale factor)、z( zero-point)、b(bit-width) 。使用 s 和 z 将浮点值映射到整数,整数的范围则取决于位宽 b 。scale factor 一般由浮点值表示,其表明了量化过程的步长 。zero-point 是一个整数,其保证真正的零点可以无误差映射到整形数据,该参数对于 zero padding 和 relu 激活函数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/359583
推荐阅读
相关标签
  

闽ICP备14008679号