1

我正在使用 MobileNetV2 并试图让它为 Google Coral 工作。除了 Coral Web 编译器,一切似乎都正常工作,抛出一个随机错误,Uncaught application failure. 所以我认为问题在于所需的中间步骤。例如,我将它与 tflite_convert 一起使用

tflite_convert \
  --graph_def_file=optimized_graph.pb \
  --output_format=TFLITE \
  --output_file=mobilenet_v2_new.tflite \
  --inference_type=FLOAT \
  --inference_input_type=FLOAT \
  --input_arrays=input \
  --output_arrays=final_result \
  --input_shapes=1,224,224,3

我怎么了?

4

1 回答 1

4

这很可能是因为您的模型未量化。Edge TPU 设备目前不支持基于浮点的模型推理。为了获得最佳结果,您应该在训练期间启用量化(在链接中描述)。但是,您也可以在 TensorFlow Lite 转换期间应用量化。

使用训练后量化,您牺牲了准确性,但可以更快地测试出一些东西。当您将图形转换为 TensorFlow Lite 格式时,设置inference_typeQUANTIZED_UINT8. 您还需要在命令行上应用量化参数(mean/range/std_dev)。

tflite_convert \
  --graph_def_file=optimized_graph.pb \
  --output_format=TFLITE \
  --output_file=mobilenet_v2_new.tflite \
  --inference_type=QUANTIZED_UINT8 \
  --input_arrays=input \
  --output_arrays=final_result \
  --input_shapes=1,224,224,3 \
  --mean_values=128 --std_dev_values=127 \
  --default_ranges_min=0 --default_ranges_max=255

然后,您可以将量化.tflite文件传递给模型编译器

有关 Edge TPU 模型要求的更多详细信息,请查看Edge TPU 上的 TensorFlow 模型

于 2019-04-02T03:16:45.157 回答