我正在尝试在我的珊瑚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
我得到了文件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
根据我的理解,必须在raspberryPi + edgeTPU / devBoard上使用classification_transfer_learning.py
脚本进行设备上学习之前完成上述过程。
希望您能给我一个解决问题的提示,并先谢谢您。
当我使用未经修改的mobilenet_v1_1.0_224_quant.tflite
模型时,编译工作不会出现任何错误。
我使用了quantized model中的tensorflow。
答案 0 :(得分:3)
似乎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转换器唯一有效的格式。有了这些标志,它应该可以正常工作。