Python 如何在n个历元之后调用回调,但总是在训练的最后一个历元?

Python 如何在n个历元之后调用回调,但总是在训练的最后一个历元?,python,python-3.x,tensorflow,keras,Python,Python 3.x,Tensorflow,Keras,我想在n个时期后调用回调,但总是在训练的最后一个时期。解释如何在n个纪元后调用回调 目前,我正在使用以下方法: classmycallback(keras.callbacks.Callback): def在_epoch_end上(self、epoch、log=None) 如果epoch%10==0:#如@Ewran在上述注释中所建议,则可以通过'self.params['epochs']访问epoch总数 classmycallback(keras.callbacks.Callback): de

我想在n个时期后调用回调,但总是在训练的最后一个时期。解释如何在n个纪元后调用回调

目前,我正在使用以下方法:

classmycallback(keras.callbacks.Callback):
def在_epoch_end上(self、epoch、log=None)

如果epoch%10==0:#如@Ewran在上述注释中所建议,则可以通过'self.params['epochs']访问epoch总数

classmycallback(keras.callbacks.Callback):
def在_epoch_end上(self、epoch、log=None)
如果epoch%self.epoch\u freq==0或epoch==self.params.get('epoch',-1):
self.(你做什么)
定义你做的事情(自我):
打印(‘完成任务’)
训练结束时的def(自我,日志=无):
self.(你做什么)

如果使用了其他回调,如
tf.keras.callbacks.earlystoping
,我将继续使用列车末端
的方法。否则,不能保证在最后一个历元之后调用回调。

您为什么不喜欢您介绍的方法?在我看来,这是最简单/最干净的方法,因为您的回调对象无权访问总的epoch数。因此,无法直接访问回调中的总epoch数(不包括将epoch数作为初始化参数传递的可能性)您可以检查字典
self.params
是否包含键
epochs
,如果是这种情况,您可以在if语句中使用它。如果没有,我看不到除你介绍的方法之外的另一种干净的方法。