Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为批处理使用Keras自定义回调停止函数_Python_Tensorflow_Keras_Callback - Fatal编程技术网

Python 如何为批处理使用Keras自定义回调停止函数

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') >

我正在一个非常大的数据集上训练。训练一个历元几乎需要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):   
          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。不跟那打交道