如何在 Edge TPU 模型编译器上编译嵌入提取器?

How to compile a embedding extractor on Edge TPU Model Compiler?

在 coral 上编译嵌入式提取器时出错

我正在尝试在我的 coral edgeTPU 设备上重新训练图像分类器。因此,我按照 Coral's "Retrain an image classification model on-device" tutorial:

上解释的步骤进行操作

嵌入式提取器创建

事实上,我根据给定的示例创建了一个嵌入提取器 tflite 文件:

tflite_convert \
--output_file=mobilenet_v1_embedding_extractor.tflite \
--graph_def_file=mobilenet_v1_1.0_224_quant_frozen.pb \
--input_arrays=input \
--output_arrays=MobilenetV1/Logits/AvgPool_1a/AvgPool

Edge TPU 模型编译器上传

我得到了文件 mobilenet_v1_embedding_extractor.tflite 并将其上传到 Edge TPU Model Compiler 中。不幸的是,编译过程确实失败了,我收到以下错误消息:


ERROR: Something went wrong. Couldn't compile model.

More details
--------------
Start Time     2019-05-02T14:14:53.309219Z
State          FAILED
Duration       5.963912978s
Type           type.googleapis.com/google.cloud.iot.edgeml.v1beta1.CompileOperationMetadata
Name           operations/compile/16259636989695619987

根据我的理解,必须在使用 classification_transfer_learning.py 脚本在 raspberryPi + edgeTPU/devBoard 上执行设备上学习之前完成上述过程。

希望大家指点解决问题,在此先谢过了。

2019 年 5 月 3 日更新

当我使用未修改的 mobilenet_v1_1.0_224_quant.tflite 模型时,编译工作没有任何错误。

我用的是quantized model from tensorflow.

似乎缺少 tflite_convert 的某些标志。我们会尽快在网站上修复。请尝试:

tflite_convert \
--output_file=mobilenet_v1_embedding_extractor.tflite \
--graph_def_file=mobilenet_v1_1.0_224_quant_frozen.pb \
--inference_type=QUANTIZED_UINT8 \
--mean_values=128 \
--std_dev_values=128 \
--input_arrays=input \
--output_arrays=MobilenetV1/Logits/AvgPool_1a/AvgPool

表明您要转换为量化模型,这是edgetpu转换器目前唯一有效的格式。使用这些标志,它应该可以正常工作。