量化的TFLite模型比TF模型具有更好的准确性

时间:2020-09-23 14:58:47

标签: python tensorflow tf-lite quantization-aware-training

我正在开发一个端到端培训了解量化的培训示例。使用CIFAR 10数据集,我加载了一个经过训练的MobilenetV2模型,然后使用TensorFlow Guide中的code来量化我的模型。整个过程正确完成后,我得到以下结果:

Quant TFLite test_accuracy: 0.94462
Quant TF test accuracy:     0.744700014591217
TF test accuracy:           0.737500011920929

我想知道,这怎么可能?量化应该稍微降低精度。

我注意到在TensorFlow的Guide示例中,准确性也有所提高,但与我的示例相比却很少。更具体地说,运行此使用code数据集的mnist时,我得到以下结果,TensorFlow的开发人员可以接受,因为他们提到准确性没有变化

Quant TFLite test_accuracy: 0.9817
Quant TF test accuracy:     0.9815
TF test accuracy:           0.9811

注意 ,我没有更改我从《 TensorFlow指南》中附加的代码,我只使用了不同 数据集< / em>和模型

1 个答案:

答案 0 :(得分:0)

当您的模型没有完全收敛并且测试数据集的大小没有被认为足够大以至于无法与2相差时,这是可能的。此外,即使您的模型已经收敛,减少位推断的方法有时也可以帮助每个节点中随机变量的范围受到限制,有时可以匹配您的情况,并帮助梯度更好地找到最佳点。但是,我仍然鼓励您扩展测试集,并检查模型收敛性,因为差距太大了。

当您将float32减少为float16时,可以从亚马逊进行分类。精度提高 enter image description here

此外,对于MNIST来说,数据很简单,并且当平均值仅为0.9815且方差不大时,准确性并没有太大差别。据我了解,这是合理的。