将.pb模型转换为量化的tflite模型

时间:2020-06-24 15:30:40

标签: python tensorflow google-coral

Tensorflow全新, 我使用从TensorFlow动物园中找到的'faster_rcnn_inception_v2_coco_2018_01_28'模型创建了一个对象检测模型(.pb和.pbtxt)。它在Windows上工作正常,但我想在Google Coral Edge TPU上使用此模型。如何将冻结的模型转换为edgetpu.tflite量化模型?

1 个答案:

答案 0 :(得分:0)

对此pipeline还有2个步骤:

enter image description here

1)转换.pb-> tflite:

我不会详细介绍,因为在tensorflow官方页面上有此文档,并且它经常更改,但是我仍然会尝试专门回答您的问题。有两种方法可以做到这一点:

  • 量化意识训练:这发生在模型训练期间。我认为这不适用于您,因为您的问题似乎表明您不知道此过程。但是如果我错了,请纠正我。

  • 训练后量化:基本上加载所有张量均为float类型的模型,并将其转换为带有int8张量的tflite形式。同样,我不会赘述过多,但我将给您提供两个实际的例子:) a)with code b)with tflite_convert tools

2)从tflite-> edgetpu.tflite编译模型:

一旦您生成了完全量化的tflite模型,恭喜您的模型现在对于手臂平台更加有效,并且尺寸也更小。但是,除非您为edgetpu编译它,否则它仍将在CPU上运行。您可以查看this doc的安装和使用情况。但是编译起来就像:

$ edgetpu_compiler -s your_quantized_model.tflite

希望这会有所帮助!