如何在tensorflow/examples中转换我的模型,如mobilenet_v1_1.0_224_quant.fl



我正在TensorFlow Lite上尝试对我的模型进行int8量化。转换本身使用tensorflow 1.15.3进行,但转换后的型号在麒麟990上运行极其缓慢。(使用tensorflow 2.3.0的转换不起作用。(

tensorflow/examples中的mobilenet_v1_1.0_224_quant.flite在麒麟990上运行速度很快。

所以我检查了差异。

  1. 我的模型是int8(tf.lite.OpsSet.TFLITE_BUILTINS_IT8(量化,但mobilenet_v1_1.0_224_quant.flite似乎是int8量化。

  2. ";过滤器";Conv2D的性质具有";量化";mobilenet_v1_1.0_224_quant.flite中的属性;过滤器";Conv2D的性质没有";量化";属性。

如何转换我的模型,如mobilenet_v1_1.0_224_quant.flite?

根据https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet他们使用https://www.tensorflow.org/lite/performance/post_training_quantization

我认为你应该运行基准工具来分析缓慢的原因:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/tools/benchmark

我发现了一个语句"还支持用传统量化感知训练路径训练的UInt8模型";在TensorFlow Lite Hexagon代理中。这意味着你需要量化意识训练来获得Uint8的重量。我认为这就是我的问题的答案,尽管它没有用处,因为我需要训练后的量化。

最新更新