【问题标题】:create_training_graph() failed when converted MobileFacenet to quantize-aware model with TF-lite使用 TF-lite 将 MobileFacenet 转换为量化感知模型时,create_training_graph() 失败
【发布时间】:2020-07-27 04:35:13
【问题描述】:

我正在尝试根据suggestion 量化MobileFacenet (code from sirius-ai) 我想我遇到了和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?

谢谢!

【问题讨论】:

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


    【解决方案1】:

    H,

    很遗憾,contrib/quantize 工具现已弃用。它将无法支持较新的模型,我们不再致力于它。

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

    【讨论】:

    • 感谢您的信息!我改用训练后整数量化。
    • 将尝试 Keras QAT API 看看它是否有助于提高准确性。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-10-29
    • 2018-09-07
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    相关资源
    最近更新 更多