create_training_graph() 在将 MobileFacenet 转换为具有 TF-lite 的量化感知模型时失败

create_training_graph() failed when converted MobileFacenet to quantize-aware model with TF-lite

我正在尝试量化 MobileFacenet () according to the 我想我遇到了与 this one

相同的问题

当我将 tf.contrib.quantize.create_training_graph() 添加到训练图中时
(train_nets.py ln.187:在 train_op = train(...) 之前或在 train() utils/common.py ln.38 之前的渐变)

它没有在图中添加量化感知操作来收集动态范围 max\min。

我假设我应该在 tensorboard 中看到一些额外的节点,但我没有,因此我认为我没有成功地在训练图中添加量化感知操作。 我尝试跟踪 tensorflow,发现我对 _FindLayersToQuantize() 一无所知。

然而,当我添加 tf.contrib.quantize.create_eval_graph() 来优化训练图时。我可以看到一些量化感知操作 act_quant... 由于我没有在训练图中成功添加操作,因此我没有权重可以加载到评估图中。 因此我收到了一些错误消息

Key MobileFaceNet/Logits/LinearConv1x1/act_quant/max not found in checkpoint

tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value MobileFaceNet/Logits/LinearConv1x1/act_quant/max

有谁知道如何解决这个错误?或者如何获得高精度的量化 MobileFacenet?

谢谢!

H,

遗憾的是,contrib/quantize 工具现已弃用。它将无法支持更新的模型,我们不再处理它。

如果您对 QAT 感兴趣,我建议您尝试新的 TF/Keras QAT API。我们正在积极开发它并为其提供支持。