我正在使用 Azure customvision.ai 训练对象检测模型。模型输出使用 tensorflow,保存模型 .pb、.tf 或 .tflite。
模型输出类型指定为 float32[1,13,13,50]
然后,我将 .tflite 推送到 Google Coral Edge 设备上并尝试运行它(以前使用 Google Cloud 训练的 .tflite 模型有效,但我现在绑定到企业 Azure 并且需要使用 customvision.ai)。这些命令与
$ mdt shell
$ export DEMO_FILES="/usr/lib/python3/dist*/edgetpu/demo"
$ export DISPLAY=:0 && edgetpu_detect \
$ --source /dev/video1:YUY2:1280x720:20/1 \
$ --model ${DEMO_FILES}/model.tflite
最后,模型尝试运行,但导致 ValueError
'This model has a {}.'.format(output_tensors_sizes.size)))
ValueError: Detection model should have 4 output tensors! This model has 1.
这里发生了什么?如何重塑我的 tensorflow 模型以匹配 4 个输出张量的设备要求?
编辑,这会输出一个 tflite 模型,但仍然只有一个输出
python tflite_convert.py \
--output_file=model.tflite \
--graph_def_file=saved_model.pb \
--saved_model_dir="C:\Users\b0588718\AppData\Roaming\Python\Python37\site-packages\tensorflow\lite\python" \
--inference_type=FLOAT \
--input_shapes=1,416,416,3 \
--input_arrays=Placeholder \
--output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1','TFLite_Detection_PostProcess:2','TFLite_Detection_PostProcess:3' \
--mean_values=128 \
--std_dev_values=128 \
--allow_custom_ops \
--change_concat_input_ranges=false \
--allow_nudging_weights_to_use_fast_gemm_kernel=true