Tensorflow 是否有可能恢复keras中的全局_步骤?

Tensorflow 是否有可能恢复keras中的全局_步骤?,tensorflow,keras,tensorflow2.0,Tensorflow,Keras,Tensorflow2.0,keras可以使用tf.keras.models.save_model()保存模型,然后从tf.keras.models.load_model() 这是一个场景 训练一个型号x步骤。将权重保存到检查点文件保存\u format='tf' 从检查点文件恢复重量,训练另一个x步骤 在tensorflow中,第二次培训的开始全局步骤是x+1步骤,但在keras中,似乎重置了全局步骤 到目前为止,这种行为给我带来了两个问题。 tensorboad混乱不堪,2次训练都从第0步开始 我需要在培训期间将一些信

keras可以使用
tf.keras.models.save_model()
保存模型,然后从
tf.keras.models.load_model()

这是一个场景

  • 训练一个型号
    x
    步骤。将权重保存到检查点文件<代码>保存\u format='tf'
  • 从检查点文件恢复重量,训练另一个
    x
    步骤
  • 在tensorflow中,第二次培训的开始全局步骤是
    x+1
    步骤,但在keras中,似乎重置了全局步骤
  • 到目前为止,这种行为给我带来了两个问题。

  • tensorboad混乱不堪,2次训练都从第0步开始
  • 我需要在培训期间将一些信息保存到文件中,文件名将取决于培训步骤,因此我可以保存不同步骤的信息,例如:weight_1000步骤、weight_2000步骤等。但由于如果我开始新的培训,步骤将重新启动,因此一些旧文件将被覆盖

  • 如何从keras中的模型文件恢复训练步骤/历元?(
    tf.\uu版本为“2.3.1”

    在Keras中,优化器跟踪迭代本身,并将其迭代计数器保存在检查点中。它以
    model.optimizer.iterations
    的形式提供

    您可以从中计算相应的历元数,并使用的参数
    init_epoch
    调整tensorboard的历元数

    我还没有找到一种记录在案的方法来调整tensorboard的步数,但至少对于当前的tensorflow(2.4),可以通过改变模型的(内部!)字段\u train \u计数器,并在
    回调
    参数中传递:

    类UseOptimizerIterationAsTrainStep(tf.keras.callbacks.Callback):
    def set_型号(自身,型号):
    self.model=model
    列车上的def开始(自身,日志=无):
    self.model.\u train\u counter.assign(self.model.optimizer.iterations)
    
    当然,这可能会在未来的tensorflow版本中再次中断