首页 > 解决方案 > 如何在 Edge TPU 模型编译器上编译嵌入提取器?

问题描述

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

我正在尝试在我的珊瑚 edgeTPU 设备上重新训练图像分类器。因此,我按照Coral 的“在设备上重新训练图像分类模型”教程中解释的步骤进行操作:

嵌入式提取器创建

事实上,我根据给定的示例创建了一个嵌入提取器 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模型时,编译工作没有任何错误。

我使用了tensorflow量化模型

标签: tensorflowtpugoogle-coral

解决方案


似乎缺少 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 转换器唯一有效的格式。使用这些标志,它应该可以正常工作。


推荐阅读