我正在使用 TensorFlow v1.4,希望使用验证集实现早停机制,并设置等待5个时期。
我在网上搜索后发现,曾经有一种名为 ValidationMonitor
的函数可以实现此功能,但现在已被弃用。那么是否有其他方法实现早停机制呢?
我正在使用 TensorFlow v1.4,希望使用验证集实现早停机制,并设置等待5个时期。
我在网上搜索后发现,曾经有一种名为 ValidationMonitor
的函数可以实现此功能,但现在已被弃用。那么是否有其他方法实现早停机制呢?
最近我在tensorflow API中发现了这个函数:tf.keras.callbacks.EarlyStopping
。tf版本是r1.9。
参数:
monitor
:要监控的量min_delta
:被监控的量的最小变化,以便被视为改进。即绝对变化小于min_delta将被视为没有改进。patience
:在训练停止之前没有改进的时期数。verbose
:详细模式。mode
:其中之一{auto
,min
,max
}。在min
模式下,当被监测的数量不再减少时,训练将停止;在max
模式下,当被监测的数量不再增加时,训练将停止;在auto
模式下,方向将从被监测的数量的名称自动推断。不幸的是,似乎没有一个好方法来做这件事。有一种方法可以考虑,在训练期间经常保存检查点,然后稍后迭代它们并对其进行评估。然后您可以丢弃没有最佳评估表现的检查点。这在训练期间无法节省时间,但至少所得到的模型是一个早停止模型。
tf.keras
是Keras API
,可用于tensorflow。这个答案解决了我的问题,但不能与估算器一起使用。 - papabiceps