【发布时间】: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 的输出模型。版本。
不同模型的创建方式
-
使用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模型
【问题讨论】:
标签: python tensorflow tensorflow-lite quantization