了解export_tflite_ssd_graph.py

时间:2019-03-18 12:50:42

标签: tensorflow deep-learning object-detection

Here是关于将Mobilenet + SSD转换为tflite的教程,他们在某些时候会使用export_tflite_ssd_graph.py,据我所知,该自定义脚本用于支持tf.image.non_max_suppression操作。

export CONFIG_FILE=gs://${YOUR_GCS_BUCKET}/data/pipeline.config
export CHECKPOINT_PATH=gs://${YOUR_GCS_BUCKET}/train/model.ckpt-2000
export OUTPUT_DIR=/tmp/tflite

python object_detection/export_tflite_ssd_graph.py \
--pipeline_config_path=$CONFIG_FILE \
--trained_checkpoint_prefix=$CHECKPOINT_PATH \
--output_directory=$OUTPUT_DIR \
--add_postprocessing_op=true

但是我不知道什么是pipeline.config,以及如果我使用通过tf.image.non_max_suppression操作的自定义模型(例如FaceBoxes)怎么创建它?

1 个答案:

答案 0 :(得分:1)

export_tflite_ssd_graph.py的主要目标是将训练检查点文件导出为冻结图,您以后可以将其用于转移学习或直接推断(因为它们包含模型结构信息以及训练后的权重信息) )。实际上, model zoo 中列出的所有模型都是以此方式生成的冻结图。

对于tf.image.non_max_suppressionexport_tflite_ssd_graph.py并不用于“支持”它,但是如果将--add_postprocessing_op设置为true,则会在冻结中添加另一个自定义操作节点图中,此自定义节点将具有类似于op tf.image.non_max_suppression的功能。参见参考文献here

最后,pipeline.config文件直接对应于您用于训练的配置文件(--pipeline_config_path),它是它的副本,但通常具有修改的得分阈值(请参见说明{{3 }}关于pipeline.config。),因此,如果您使用自定义模型,则必须在训练之前创建它。而要创建自定义配置文件,here是官方教程。