【问题标题】:"Model not quantized" even after post-training quantization即使在训练后量化之后,“模型未量化”
【发布时间】:2019-08-11 06:50:34
【问题描述】:

我从 Custom Vision 下载了一个 tensorflow 模型,并希望在珊瑚 tpu 上运行它。因此,我将其转换为 tensorflow-lite 并应用混合训练后量化(据我所知,这是唯一的方法,因为我无法访问训练数据)。 你可以在这里看到代码:https://colab.research.google.com/drive/1uc2-Yb9Ths6lEPw6ngRpfdLAgBHMxICk 当我尝试为边缘 tpu 编译它时,我得到以下信息:

    Edge TPU Compiler version 2.0.258810407
    INFO: Initialized TensorFlow Lite runtime.
    Invalid model: model.tflite
    Model not quantized

知道我的问题可能是什么吗?

【问题讨论】:

    标签: tensorflow tensorflow-lite google-coral


    【解决方案1】:

    tflite 模型没有使用converter.optimizations = [tf.lite.Optimize.OPTIMIZE_FOR_SIZE] 完全量化。您可能会查看使用表示数据集的训练后全整数量化:https://www.tensorflow.org/lite/performance/post_training_quantization#full_integer_quantization_of_weights_and_activations 只需调整您的生成器函数以产生代表性样本(例如,相似的图像,您的图像分类网络应该预测的内容)。很少有图像足以让转换器识别最小值和最大值并量化您的模型。但是,与量化感知学习相比,您的准确度通常较低。

    【讨论】:

      【解决方案2】:

      我找不到来源,但我相信边缘 TPU 目前只支持 8 位量化模型,不支持混合算子。

      编辑:在 Corals FAQ 他们提到模型需要完全量化。

      您需要将模型转换为 TensorFlow Lite,并且必须是 使用量化感知训练(推荐)或 全整数训练后量化。

      【讨论】:

      • hmm.. 然后就没有办法创建量化的 tensorflow lite 模型了,对吧? (因为我没有原始数据)
      • @Michael 不幸的是没有。如果我是对的,您需要研究量化感知训练,这需要您训练模型,当然还有训练数据。
      • @Michael 在 Corals FAQ 上找到了一个参考,这似乎暗示您需要完全量化模型才能工作。查看我的编辑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 2019-03-20
      • 1970-01-01
      • 2021-07-19
      • 2021-05-22
      • 1970-01-01
      相关资源
      最近更新 更多