2

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

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

我想知道,这怎么可能?量化应该会稍微降低准确性。

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

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

请注意,我没有更改从 TensorFlow 指南中附加的代码,我只是使用了不同的 数据集模型

4

1 回答 1

1

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

当亚马逊将 float32 减少到 float16 时,亚马逊的分类就是一个可靠的证据。准确度提升 在此处输入图像描述

此外,对于 MNIST,数据很简单,当它的均值只有 0.9815 左右时,准确度并没有太大差异,并且有一点差异。据我了解,这是合理的。

于 2020-10-06T01:20:49.737 回答