我使用Deeplab官方Github页面上提供的python脚本,使用自己的数据集训练了语义分割模型。 培训和测试都进展顺利。
然后我使用export_model.py通过以下命令将模型导出到冻结图:
python3 export_model.py \
--model_variant="xception_65" \
--crop_size=354 \
--crop_size=354 \
--atrous_rates=6 \
--atrous_rates=12 \
--atrous_rates=18 \
--output_stride=16 \
--checkpoint_path=model.ckpt-1000 \
--export_path=frozen_inference_graph_354X354.pb
这也成功。现在,我想使用convert_to_tflite.py将冻结的图转换为tflite。该脚本有2个我不理解的输入参数:“ input_tensor_name ”和“ output_tensor_name ”。我应该为“ output_tensor_name ”保留默认值“ ArgMax:0 ”。 “ input_tensor_name ”的值应该是什么?
python3 convert_to_tflite.py \
--quantized_graph_def_path=frozen_inference_graph_354X354.pb \
--output_tflite_path=model.tflite \
--input_tensor_name="?" \
--output_tensor_name="?"
我找不到与此有关的任何文档。预先感谢!
答案 0 :(得分:1)
您需要查看文档,尤其是quantize降价文档。
在该文档中,您可以找到有效的--input_tensor_name=MobilenetV2/MobilenetV2/input:0
您需要通过修改参数--quantize_delay_step
为了进行训练,可能您至少需要tensorflow == 1.15.3。参见this issue
如果执行上述所有操作,则冻结图将具有带有指定名称的有效输入张量。您可以使用Netron搜索特定的节点名称来进行检查。最后,使用convert_to_tflite.py
脚本创建tflite模型