python - 在训练周期的一部分之后运行评估

标签 python tensorflow tensorflow-datasets

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

目前,我在完成一个周期后运行评估,即在训练数据集完全运行之后。

如果我想在训练数据集完成之前评估我的网络,我必须提前切换,并且通过执行此 tensorflow 会忘记它在训练数据集中的位置。有没有办法记住训练数据集迭代器的状态?评估完成后切换回这个位置?

最佳答案

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

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

关于python - 在训练周期的一部分之后运行评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54425905/

相关文章:

python - 如何根据单个scrapy.Spider的不同命令设置不同的IP?

python - 基于 Django 文件的 session - 文件名太长

python - Tensorflow 对象检测 Api M1 Macbook 冲突错误

python - 如何将张量转换为字符串

Tensorflow/models 使用 COCO 90 类 ID 虽然 COCO 只有 80 个类别

python - 为外键字段创建 post_save 信号

python - 如何将两个图像与枕头组合(逻辑或)?

python - Tensorflow 基础知识 - 计算累积移动平均值

python - 有没有办法在 tf.data.Dataset w/tf.py_func 中传递字典?

TensorFlow: `tf.data.Dataset.from_generator()` 不适用于 Python 3.x 上的字符串