Python 检查模型的量化状态

Python 检查模型的量化状态,python,tensorflow,tensorflow-lite,quantization,Python,Tensorflow,Tensorflow Lite,Quantization,我有一个Keras(不是tf.Keras)模型,我对它进行了量化(训练后)以在嵌入式设备上运行它 为了将模型转换为量化的tflite模型,我尝试了不同的方法,最后得到了大约五个版本的量化模型。它们的大小都略有不同,但它们似乎都在我的x86机器上工作。所有模型显示不同的推理时间 现在,我想检查模型实际上是如何量化的(完全,仅权重,…),因为嵌入式解决方案仅采用完全量化的模型。我想了解更多细节,例如,重量的差异是什么(也许可以解释不同的模型尺寸)。模型摘要没有给出任何见解 你能告诉我怎么做吗 有人

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

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

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

  • 你能告诉我怎么做吗
  • 有人知道TF1.x版本的tflite转换是否总是完全量化的吗
谢谢


更多解释:

正如我使用的那样,模型应该完全量化

converter.inference_input_type = tf.uint8
converter.inference_output_type = tf.uint8
在转换期间。但是,我必须使用TF1.x版本来转换,或者分别使用TF2.x从_keras_model_文件转换tf.compat.v1.lite.TFLiteConverter。因此,我不确定使用“经典”TF1.x版本或tf.compat.v1的输出模型。版本

创建不同模型的方式

  • 使用TF1.3转换h5模型

  • 使用TF1.5.3转换h5模型

  • 使用TF2.2转换h5模型

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

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

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

  • 使用TF1.5.3转换转换的pb模型

  • 使用TF2.2转换转换的pb模型


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

    谢谢。我试试这个。期待着一些漂亮的展示。保持健康,不客气。如果您使用Netron,还应该看到TF1.x应该返回完全量化的网络。欢迎使用。如果你认为答案是足够的,请考虑通过它旁边的绿色支票接受它:)-我必须首先检查它。祝你今天愉快,谢谢你的帮助