【发布时间】:2019-03-06 12:23:45
【问题描述】:
我正在使用 Tensorflow 的对象检测 API 来检测汽车。它应该将汽车检测为一类“汽车”。
我关注了senddex的以下系列:
https://pythonprogramming.net/introduction-use-tensorflow-object-detection-api-tutorial/
系统信息:
操作系统 - Ubuntu 18.04 LTS
GPU - Nvidia 940M(显存:2GB)
张量流:1.10
Python - 3.6
CPU - 英特尔 i5
问题: 训练过程运行良好。为了知道模型何时收敛以及何时应该停止训练,我在运行训练的终端中观察了每步训练期间的损失,并且还观察了总损失图Tensorboard 通过在另一个终端中运行以下命令,
$tensorboard --logdit="training"
但即使在训练到 60k 步之后,损失也在 2.1 到 1.2 之间波动。如果我停止训练并从最后一个检查点(保存在 training/ 文件夹中)导出推理图,它在某些情况下会检测到汽车,在某些情况下会给出误报。
我也尝试运行 eval.py,如下所示,
python3 eval.py --logtostderr --pipeline_config_path=training/ssd_mobilenet_v1_pets.config --checkpoint_dir=training/ --eval_dir=eval/
但它给出一个错误,表明 GPU 内存无法运行此脚本以及 train.py。
所以,我停止训练以确保 GPU 空闲,然后运行 eval.py 但它只在 eval/ 文件夹中创建一个 eval 点。为什么?
另外,我如何从 Tensorboard 中的 Precision 图表了解需要停止训练?
如果有人愿意,我也可以发布屏幕截图。 我应该继续训练直到平均损失保持在 1 左右吗?
谢谢。
PS:在下面添加了总损失图,直到 66k 步。
PS2:经过 2 天的训练(并且仍在继续),这是下面的总损失图。
【问题讨论】:
标签: python-3.x tensorflow tensorboard object-detection-api