在一部分训练时期后进行评估

时间:2019-01-29 16:49:59

标签: python tensorflow tensorflow-datasets

我使用数据集api加载了两个数据集,一个用于训练,一个用于评估。在进行评估或训练之前,我用sess.run(train_init_op)在它们之间切换。

目前,我在完成一个纪元后(即训练数据集完全运行之后)进行评估。

如果我想在训练数据集完成之前评估我的网络,我将不得不更早切换,并且通过这样做,张量流将忘记它在训练数据集中的位置。有什么方法可以记住训练数据集迭代器的状态?评估完成后再回到这个位置吗?

1 个答案:

答案 0 :(得分:0)

我认为这不仅是要记住训练集中的位置,而且还要记住累积的梯度,优化器的参数(如果使用Adam等),在训练和验证之间切换上下文会很棘手。

例如,在Google对象检测API中,有一个单独的验证过程,monitors for fresh checkpoints并对它们进行验证。同时培训正在进一步进行。因此,通过设置检查点间隔,可以达到所需的任何验证频率。