我遇到以下问题:当我使用自己的数据集重新训练 TF 对象检测 API 时,训练经常被终止,我不知道原因。没有错误日志,只是被杀死。
而且,为什么我的MODEL_DIR
中只保存了很少的model.ckpt-XXXX
?
其次,当我尝试使用提供的脚本将上述模型导出到卡住图时,我在分析中看到形状不完整:
================== Model Analysis Report ======================
Incomplete shape.
我在训练过程被杀死后使用了model.cpkt-XXXX
,这是形状不完整的原因吗?
导出的模型可以用于推理,但我认为它不是最佳的......
仅供引用,我已经用 1 个类重新训练了 mobileSSDv2,并且我已经修改了有关更改的管道配置文件,如下所示:
- 我将类(class)数量更改为 1
- 在 train
config {}
部分,我将批量大小更改为 12,并将步数设置为 200 train_input_reader
和eval_input_reader {}
部分,我已将路径添加到 TF 记录和labelmap.pbtxt
- 在
eval_config {}
部分,我已将示例数量更改为 85(我的 eval 图像存储库中的图片数量),并将最大 eval 更改为 5。
我在带有 python 2.7 的 virtualenv 中使用带有 tensoflow-GPU 1.12.0 的 ubuntu 16.04。
提前谢谢您。
最佳答案
如果您使用的是tensorflow-gpu并且您有一个GPU,200是一个非常低的数字,您在几分钟内就可以达到(并且您的卷积网络将不会学到任何东西)。至少将其增加到 100.000。
此外,由于训练步骤数量较少,您可能希望训练在开始(第 0 步)和结束训练(第 200 步)时保存模型,因此您只得到 2 个模型。
如果您不更改 trainer.py 内的save_interval_secs,Tensorflow 每 600 秒保存一次模型
关于python - Tensorflow 对象检测 API 训练和导出图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54529010/