量化 | Posting-training quantization

量化

训练后量化可以在改善 CPU 和硬件加速器延迟的同时缩减模型大小,且几乎不会降低模型准确率。

动态范围 / 全整数 / float16量化
TechniqueBenefitsHardware
Dynamic range quantization4x smaller, 2x-3x speedupCPU
Full integer quantization4x smaller, 3x+ speedupCPU, Edge TPU, Microcontrollers
Float16 quantization2x smaller, GPU accelerationCPU, GPU

post-training optimization options

动态范围量化

训练后量化最简单的形式是仅将权重从浮点静态量化为整数(具有 8 位精度)

全整数量化 INT

对于全整数量化,需要校准或估算模型中所有浮点张量的范围,即 (min, max)。与权重和偏差等常量张量不同,模型输入、激活(中间层的输出)和模型输出等变量张量不能校准,除非我们运行几个推断周期。因此,转换器需要一个有代表性的数据集来校准它们。

整数量化 UINT

对于适用于微控制器的 TensorFlow Lite 和 Coral Edge TPU,创建全整数模型是常见的用例。

float16量化

float16 量化的优点:

  • 将模型的大小缩减一半(因为所有权重都变成其原始大小的一半)。
  • 实现最小的准确率损失。
  • 支持可直接对 float16 数据进行运算的部分委托(例如 GPU 委托),从而使执行速度比 float32 计算更快。

float16 量化的缺点:

  • 它不像对定点数学进行量化那样减少那么多延迟。
  • 默认情况下,float16 量化模型在 CPU 上运行时会将权重值“反量化”为 float32。(请注意,GPU 委托不会执行此反量化,因为它可以对 float16 数据进行运算。)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值