【问题标题】:Check quantization status of model检查模型的量化状态
【发布时间】:2020-06-26 09:54:26
【问题描述】:

我有一个 Keras(不是 tf.keras)模型,我对其进行量化(训练后)以在嵌入式设备上运行它。

为了将模型转换为量化的 tflite 模型,我尝试了不同的方法,最终得到了大约五个版本的量化模型。它们的大小都略有不同,但它们似乎都可以在我的 x86 机器上运行。所有模型都显示不同的推理时间。

现在,我想检查模型的实际量化方式(完全,仅权重,...),因为嵌入式解决方案仅采用完全量化的模型。我想查看更多细节,例如,权重有什么不同(也许可以解释不同的模型尺寸)。模型摘要没有提供任何见解。

  • 您能给我一个提示吗?
  • 有人知道TF1.x版本的tflite转换是否总是完全量化的吗?

谢谢


更多解释:

模型应该是完全量化的,就像我使用的那样

converter.inference_input_type = tf.uint8
converter.inference_output_type = tf.uint8

在转换期间。但是,我不得不使用TF1.x版本进行转换,或者分别tf.compat.v1.lite.TFLiteConverter.from_keras_model_file与TF2.x。所以我不确定使用“经典”TF1.x 版本或 tf.compat.v1 的输出模型。版本。

不同模型的创建方式

  1. 使用TF1.3转换一个h5模型

  2. 使用TF1.5.3转换一个h5模型

  3. 使用TF2.2转换一个h5模型

  4. 使用 TF1.3 将 h5 模型转换为 pb

  5. 将 h5 模型转换为 pb TF1.5

  6. 使用 TF2.2 将 h5 模型转换为 pb

  7. 使用TF1.5.3转换转换后的pb模型

  8. 使用TF2.2转换转换后的pb模型

【问题讨论】:

    标签: python tensorflow tensorflow-lite quantization


    【解决方案1】:

    Netron 是一个方便的网络可视化工具。您可以选择各个层并查看权重、偏差、输入和输出的类型和值。

    【讨论】:

    • 谢谢。我会试试这个。期待一些漂亮的展示。保持储蓄和健康
    • 不客气。如果您使用 Netron,您还应该看到 TF1.x 应该返回完全量化的网络。
    • 不客气。如果您认为答案足够,请考虑通过旁边的绿色勾选接受它:)
    • :-) 我必须先详细检查一下。祝您有美好的一天,感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2019-10-02
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2014-12-23
    • 1970-01-01
    • 2014-09-14
    相关资源
    最近更新 更多