使用tflite_convert转换tfLite for Coral的冻结图

时间:2019-03-24 02:01:24

标签: tensorflow google-coral

我正在使用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

我怎么了?

1 个答案:

答案 0 :(得分:1)

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

使用训练后量化,您可以牺牲准确性,但可以更快地进行测试。将图形转换为TensorFlow Lite格式时,请将inference_type设置为QUANTIZED_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文件传递到model compiler

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