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)怎么创建它?
答案 0 :(得分:1)
export_tflite_ssd_graph.py
的主要目标是将训练检查点文件导出为冻结图,您以后可以将其用于转移学习或直接推断(因为它们包含模型结构信息以及训练后的权重信息) )。实际上, model zoo 中列出的所有模型都是以此方式生成的冻结图。
对于tf.image.non_max_suppression
,export_tflite_ssd_graph.py
并不用于“支持”它,但是如果将--add_postprocessing_op
设置为true
,则会在冻结中添加另一个自定义操作节点图中,此自定义节点将具有类似于op tf.image.non_max_suppression
的功能。参见参考文献here。
最后,pipeline.config
文件直接对应于您用于训练的配置文件(--pipeline_config_path
),它是它的副本,但通常具有修改的得分阈值(请参见说明{{3 }}关于pipeline.config
。),因此,如果您使用自定义模型,则必须在训练之前创建它。而要创建自定义配置文件,here是官方教程。