keras中的提前停止回调
如何通过keras中的回调有效地停止训练模型的拟合过程?到目前为止,我已经尝试了各种方法,包括下面的方法keras中的提前停止回调,keras,callback,early-stopping,Keras,Callback,Early Stopping,如何通过keras中的回调有效地停止训练模型的拟合过程?到目前为止,我已经尝试了各种方法,包括下面的方法 class EarlyStoppingCallback(tf.keras.callbacks.Callback): def __init__(self, threshold): super(EarlyStoppingCallback, self).__init__() self.threshold = threshold def on_epo
class EarlyStoppingCallback(tf.keras.callbacks.Callback):
def __init__(self, threshold):
super(EarlyStoppingCallback, self).__init__()
self.threshold = threshold
def on_epoch_end(self, epoch, logs=None):
accuracy = logs["accuracy"]
if accuracy >= self.threshold:
print("Stopping early!")
self.model.stop_training = True
执行回调,但是self.model.stop\u training=True
似乎没有效果。打印成功,但模型继续训练。你知道如何解决这个问题吗?
我的tensorflow版本是:tensorflow==1.14.0您可能受到以下问题的影响: 简言之,每当调用
model.predict
或model.evaluate
时,model.stop\u training
重置为False
。我能够使用您的EarlyStoppingCallback
,然后是另一个在某个固定数据集上调用model.predict
的回调来重现这种行为
解决方法是将调用<代码>模型的回调放在前面。预测<代码>或<代码>模型。在任何可能要设置<代码>模型的回调之前,首先评估<代码>。停止培训<代码>为<代码>真<代码>。TF2.2似乎也解决了这个问题。你能分享一下你的代码吗谢谢:),这很有见地。这个问题可以立即解决。