使用 tflite_convert 将 Frozen graph for tfLite for Coral 转换
Convert Frozen graph for tfLite for Coral using tflite_convert
我正在使用 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
我哪里错了?
这很可能是因为您的模型不是 quantized。 Edge TPU 设备目前不支持基于浮点数的模型推理。 为获得最佳结果,您应该在训练期间启用量化(如 link 中所述)。但是,您也可以在 TensorFlow Lite 转换期间应用量化。
使用 post 训练量化,您会牺牲准确性,但可以更快地测试出一些东西。当您将图形转换为 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。
我正在使用 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
我哪里错了?
这很可能是因为您的模型不是 quantized。 Edge TPU 设备目前不支持基于浮点数的模型推理。 为获得最佳结果,您应该在训练期间启用量化(如 link 中所述)。但是,您也可以在 TensorFlow Lite 转换期间应用量化。
使用 post 训练量化,您会牺牲准确性,但可以更快地测试出一些东西。当您将图形转换为 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。