Python 如何为批处理使用Keras自定义回调停止函数
我正在一个非常大的数据集上训练。训练一个历元几乎需要1.5个小时。在最初几分钟内,精度几乎达到了预期水平。但我不能停止在批处理端使用回调函数进行训练,因为它只在一个历元后停止。有人能帮我吗Python 如何为批处理使用Keras自定义回调停止函数,python,tensorflow,keras,callback,Python,Tensorflow,Keras,Callback,我正在一个非常大的数据集上训练。训练一个历元几乎需要1.5个小时。在最初几分钟内,精度几乎达到了预期水平。但我不能停止在批处理端使用回调函数进行训练,因为它只在一个历元后停止。有人能帮我吗 acc_thresh = 0.965 class myCallback(tf.keras.callbacks.Callback): def on_train_batch_end(self, batch, logs={}): if(logs.get('accuracy') >
acc_thresh = 0.965
class myCallback(tf.keras.callbacks.Callback):
def on_train_batch_end(self, batch, logs={}):
if(logs.get('accuracy') > acc_thresh):
print("\nWe have reached %2.2f%% accuracy, so we will stopping training." %(acc_thresh*100))
self.model.stop_training = True
即使在达到极限并输出消息“达到96.5%的准确率”后,仍会继续。关于如何在批次之间(而不是在不同时期之间)停止训练的任何想法?您是否尝试过
break
关键字?self.model.stop\u training=True
应该在中,如果正确,请参见keras 2.3.1
中的。我在tf.keras中测试了它,但它不起作用-请参阅。但是您可以添加sys.exit()
来实际停止训练。但是我尝试使用keras 2.4。不使用该选项您是否尝试过break
keyword?self.model.stop\u training=True
应该在中,如果right?在keras 2.3.1
中,它似乎有效-请参阅。我在tf.keras中测试了它,但它不起作用-请参阅。但是您可以添加sys.exit()
来实际停止训练。但是我尝试使用keras 2.4。不跟那打交道