检查模型的量化状态
Check quantization status of model
我有一个 Keras(不是 tf.keras)模型,我在嵌入式设备上将其量化(post-训练)到 运行。
为了将模型转换为量化的 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 的输出模型。版本。
不同模型的创建方式
使用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 是可视化网络的便捷工具。您可以选择各个层并查看权重、偏差、输入和输出的类型和值。
我有一个 Keras(不是 tf.keras)模型,我在嵌入式设备上将其量化(post-训练)到 运行。
为了将模型转换为量化的 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 的输出模型。版本。
不同模型的创建方式
使用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 是可视化网络的便捷工具。您可以选择各个层并查看权重、偏差、输入和输出的类型和值。