【发布时间】:2019-06-14 18:30:32
【问题描述】:
我正在运行 tensorflow object_detection 模型的 model_main.py。 我想知道哪个 .py 文件有代码,模型在哪里检查 'mode_dir' 中的现有检查点,以及模型如何知道从保存的最新检查点加载/启动。
我检查了 model_lib.py,但还无法弄清楚。
【问题讨论】:
-
model_dir是保存检查点文件但未加载的路径。可能您指的是预训练模型的检查点路径? -
是的,我第一次运行时,检查点文件保存在model_dir中。但是当我下次运行更多步骤时,我认为它会检查现有检查点文件的 mode_dir 路径并根据最新的检查点文件保存第一个检查点(用于第二次运行),然后从它离开的地方开始训练。如果我的第一次运行是 100 步,第二次运行是 300 步,那么第二次运行将从 100 开始,而不是从 0 开始。所以,我想知道第二次运行如何/从何处获取有关现有检查点的信息并从最新的。
-
这不是 tensorflow OD API 从检查点保持训练的方式。如果
model_dir不为空,tensorflow会先检查保存的checkpoint是否达到训练步数,如果达到则跳过训练。见这里stackoverflow.com/a/52201093/1621414。但是在您的情况下,尚未达到训练步数(您设置了更大的 num_steps),在这种情况下,模型仍会从 stratch 开始训练。 (我不完全确定,但根据我使用 API 的经验,我会在 tensorboard 中看到两个训练损失图)。 -
如果要使用保存在
model_dir中的检查点,需要在配置文件train_config下指定checkpoint: /path/to/checkpoint。 -
在model_dir中,每次保存新的检查点时都会生成并更新一个名为
checkpoint的文件,其中包含检查点的最新文件名。我假设每次您尝试恢复训练时都会读取此文件。
标签: python-3.x tensorflow object-detection