我正在使用TensorflowLite C ++ API在android上开发对象检测应用程序。当我将ssd_mobilenet_v2_coco_2018_03_29模型转换为tflite时,转换后的tflite模型的输出与相同测试图像上最初提供的.pb文件的输出不同。
将.pb文件转换为.tflite
终端命令(我使用this link来获得帮助。):
python3 object_detection/export_tflite_ssd_graph.py --pipeline_config_path=/content/ssd_mobilenet_v2_coco_2018_03_29/pipeline.config --trained_checkpoint_prefix=/content/ssd_mobilenet_v2_coco_2018_03_29/model.ckpt --output_directory=/tmp/tflite_graph --add_postprocessing_op=true
以上命令抛出错误:
google.protobuf.text_format.ParseError:109:7:消息类型 “ object_detection.protos.SsdFeatureExtractor”没有名为的字段 “ batch_norm_trainable”
按照建议的here步骤执行后,错误已解决。我从“ pipeline.config”文件中注释了“ batch_norm_trainable”标签。
但是,转换后的tflite模型的检测输出与原始提供的.pb文件的检测输出不同。如何将.pb文件转换为.tflite,以便.tflite文件提供正确的输出?
输出图像:
使用的版本:
任何帮助/指导都将不胜感激。
干杯:)
答案 0 :(得分:0)
尝试使用带有tensorflow的Keras作为后端