我用大量 epoch 训练我的 CNN 模型,每个 epoch 我都会打印训练损失和准确性,但这两个指标有很多高低,我想提前停止,例如损失为 0.2 和准确率在 %95 或更高,因为我在不止一个时期得到这个,我的问题是:
1-是在训练集还是验证集上提前停止?
2-如果在验证集上,我应该打印每个时期的验证损失和准确度,并带有训练集损失和准确度吗?
3-你能给出一个想法,用一段代码而不是在 keras 中提前停止,因为我使用的是 tensorflow 而不是 keras?
我用大量 epoch 训练我的 CNN 模型,每个 epoch 我都会打印训练损失和准确性,但这两个指标有很多高低,我想提前停止,例如损失为 0.2 和准确率在 %95 或更高,因为我在不止一个时期得到这个,我的问题是:
1-是在训练集还是验证集上提前停止?
2-如果在验证集上,我应该打印每个时期的验证损失和准确度,并带有训练集损失和准确度吗?
3-你能给出一个想法,用一段代码而不是在 keras 中提前停止,因为我使用的是 tensorflow 而不是 keras?
提前停止是根据验证集的结果(损失、准确性或其他一些特殊指标)确定的。
通常每个时期都会检查提前停止,因此您需要在每个时期之后检查验证准确性/损失。你不必打印它,但如果它已经计算过了,你就没有理由隐瞒它。(如果它太慢了你的训练过程,你也可以每 x epoch 检查一次验证结果)。
有许多资料显示如何使用 tensorflow 提前停止: