使用步长间隔而不是时间间隔(秒)保存tensorflow-slim模型

时间:2018-03-23 08:16:32

标签: python tensorflow tensorflow-slim

我正在使用object detection in tensorflow api。在我之前的工作中,我曾经检查过当前步骤并在每个 n 步骤中保存我的模型,类似于提到here的方法。

在这种情况下,虽然作者使用TensorFlow-Slim来执行培训。因此,他们使用tf.train.Saver传递给执行训练的实际函数:slim.learning.train()。虽然此函数有一些关于使用参数save_interval_secs写下训练模型的间隔的参数,但它是时间相关的而不是步骤依赖的。

所以,因为tf.train.Saver是"被动"提到的实用程序here只是使用提供的参数保存模型,意思是不知道任何时间或步骤概念,并且在对象检测代码中控件在 TensorFlow-Slim 中传递,通过将保护程序作为参数传递,在这种情况下,我如何实现保存我的模型步骤(每个 n步而不是每个 x秒)?

唯一的解决方案是挖掘超薄代码并对其进行编辑(所有风险都来自此)?或者还有其他我不熟悉的选择吗?

P.S.1
我发现这个选项here有一个令人惊讶的类似问题,但不幸的是它没有任何答案。因此,由于我的问题仍然存在,我将保留这个问题,以引起人们对该问题的兴趣。

P.S.2
查看slim.learning代码,我发现在train()传递参数后,它只是将控制传递给supervisor.Supervisor,这引用了tf.train.Supervisor这有点奇怪,因为这个类被视为已弃用。 supervisor的文档字符串中也提到了slim.learning的使用。

0 个答案:

没有答案