Entropy Calibration(交叉熵校准)
通过计算KL散度(度量两个概率分布之间的差异程度),KL散度越大,两者差异越大,KL散度越小,两者差异越小。两者相同,KL散度为0。
设定两个概率分布分别为P和Q,在设定为连续随机变量的前提下,他们对应的概率密度函数分别为p(x)和q(x)。如果我们用q(x)去近似p(x),则KL散度可以表示为:
当且仅当P=Q时,KL=0。KL具备非负性,KL散度不具备对称性,P对Q的散度并不等于Q对P的KL散度,KL散度并不是一个度量,即并非距离。
我们希望最小化真实数据和生成数据之间的KL散度,从而使得生成数据尽可能接近真实数据的分布。
LEGACY_CALIBRATION(传统校准)
MINMAX_CALIBRATION(最小最大校准)
FP32->INT8的scale需要能把FP32的最小最大值都能覆盖住,如果float point分布比较离散,各个区间下的分布都比较均匀,MINMAX是个不错的选择,然而如果只是极个别数据分布在这些地方的话,会让dynamic range变得比较稀疏,不适合用minmax。