HFMG数据量化算法
该算法用于训练后量化场景。
HFMG(Histogram Feature Map Glutton)算法通过直方图的方式来记录激活数据的数据分布,通过搜索的方式确定最佳的量化截断位置。量化原理如下所示:
- 第一步根据输入激活数据创建直方图。
- 若有更多batch的数据则对每个batch的数据创建一个直方图,然后进行直方图合并的操作,如图1所示。
- 基于激活数据的直方图根据搜索的方式确定数据的截断点,如图2所示。
该量化算法的数据放在内存中,和IFMR数据量化算法相比,更节省内存。该算法与IFMR数据量化算法同一层不能同时配置。
create_quant_config接口量化默认使用的为IFMR数据量化算法,如果想使用HFMG数据量化算法,则只能通过create_quant_config接口config_defination参数配置简易配置文件方式实现。
图2 搜索得到最优的左右截断位置
如果未获得最优的量化效果,则可以改变直方图的bin个数(直方图中的一个最小单位直方图形),选择量化误差更小的一组参数作为最终的量化结果。HFMG算法中,num_of_bins配置参数用来调整直方图的bin的数目,参数说明请参见训练后量化简易配置文件中HFMGQuantize的配置参数。通常情况下,num_of_bins数值越大,直方图拟合原始数据分布的能力越强,可能获得更佳的量化效果,但训练后量化过程的耗时也会更长。
父主题: 训练后量化算法