- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 tensorflow object-detection api 使用来自 tensorflow 的 ssdlite_mobilenet_v2_coco_2018_05_09 训练自定义模型 model zoo .
我成功地训练了模型并使用 this tutorial 中提供的脚本对其进行了测试.
这就是问题所在,我需要一个detect.tflite 才能在我的目标机器(嵌入式系统)中使用它。但是当我实际从我的模型中创建一个 tflite 时,它几乎没有输出,而当它输出时,它是一个错误检测。为了制作 .tflite 文件,我首先使用 export_tflite_ssd_graph.py
,然后按照 the doc 使用此命令在输出上使用 toco
和一些谷歌搜索:
toco --graph_def_file=$OUTPUT_DIR/tflite_graph.pb --output_file=$OUTPUT_DIR/detect.tflite --input_shapes=1,300,300,3 --input_arrays=normalized_input_image_tensor --output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1','TFLite_Detection_PostProcess:2','TFLite_Detection_PostProcess:3' --allow_custom_ops
此外,我用于 .tflite 检测任务的代码工作正常,因为我使用 ssd_mobilenet_v3_small_coco detect.tflite 文件对其进行了测试。
最佳答案
问题出在 toco
命令上。我使用的一些文件已经过时并误导了我。 toco
已弃用,我应该改用 tflite_convert
工具。
这是我使用的完整命令(从您的培训目录运行):
tflite_convert --graph_def_file tflite_inference_graph/tflite_graph.pb--output_file=./detect.tflite --output_format=TFLITE --input_shapes=1,300,300,3 --input_arrays=normalized_input_image_tensor --output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1','TFLite_Detection_PostProcess:2','TFLite_Detection_PostProcess:3'--inference_type=QUANTIZED_UINT8 --mean_values=128 --std_dev_values=127 --change_concat_input_ranges=false --allow_custom_ops
我在 ssdlite_mobilenet_v2_coco_2018_05_09 模型上进行了训练,并将其添加到我的 .config 文件的末尾。
graph_rewriter {
quantization {
delay: 400
weight_bits: 8
activation_bits: 8
}
}
此外,我还使用此命令在 tflite_inference_graph 目录中生成了 tflite_graph.pb:
python export_tflite_ssd_graph.py --pipeline_config_path 2020-05-17_train_ssdlite_v2/ssd_mobilenet_v2_coco.config --trained_checkpoint_prefix 2020-05-17_train_ssdlite_v2/train/model.ckpt-1146 --output_directory 2020-05-17_train_ssdlite_v2/tflite_inference_graph --add_postprocessing_op=true
注意:我想在我的嵌入式系统上使用量化模型。这就是我在配置文件中添加 graph_rewriter 并在我的 tflite_convert 命令中添加 --inference_type=QUANTIZED_UINT8 的原因。
关于python - 如何正确地将 tflite_graph.pb 转换为 detect.tflite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61749548/
我正在使用 tensorflow object-detection api 使用来自 tensorflow 的 ssdlite_mobilenet_v2_coco_2018_05_09 训练自定义模型
我是一名优秀的程序员,十分优秀!