首页 文章

fit_generator对训练和验证数据的子样本做了什么?

提问于
浏览
1

我在keras中使用带fit_generator的数据生成器(用于训练和验证数据) . 我得到了意想不到的结果,所以我检测了生成器输出批量索引并计算自上一个纪元以来的步数 . 我已将['acc']添加到模型指标中 .

当fit_generator运行时,我看到它做了几件事:

  • 它排队验证数据(但我还没有评估) .

  • 迭代所有训练数据并调用on_epoch_end()

  • 它又称了10个步骤的训练数据 . 我认为这必须来自回调 . 它在做什么?

  • 完成迭代验证数据并调用on_epoch_end()

  • 它调用另外10步验证数据 . 再说一遍,它在做什么?

  • fit_generator打印列车/验证损失和准确性以及返回 .

在3和5的10个步骤之后永远不会调用on_epoch_end() . 这可能是一个错误,因为我们需要在下一个纪元之前重置生成器 .

我主要想知道3和5发生了什么,为什么发电机被调用,为什么只有10步?

Versions:
print(keras.__version__)
2.2.2

print(tf.__version__)
1.9.0

1 回答

  • 0

    根据Matias的评论:额外的批次对应于下一个时期的预先排队的批次 . 当fit_generator返回时,它们会掉在地板上 . 在再次调用fit_generator之前,由用户重置发生器 .

相关问题