动态范围量化的tensorflow文档说明:
在推理时,权重从8位精度转换为浮点数,并使用浮点核进行计算。此转换只执行一次,并缓存以减少延迟。
以及在动态范围量化中,激活值总是存储在浮点32中,但是,它们在处理时转换为8位整数,处理完成后转换为浮点数。
我很困惑,如果权重在推理时间转换为float32,那么量化是如何完成的?
引自https://www.tensorflow.org/lite/performance/post_training_quant
此外,TFLite支持动态量化和去量化激活以允许:
在可用的情况下使用量化内核以更快地实现。浮点核与量子化核的混合图的部分
如果内核有一个支持量化的优化路径,那么浮点数激活将被量化以应用于量化的权重。
否则,激活将保持为float,权重将转换为float进行推理。