首页 > 解决方案 > model.save_weights(save_format='tf') 是否保存优化器状态?

问题描述

我正在尝试KerasTF2.1. 为此,我编写了一个自定义损失函数。我的目标是在每个epoch. 为此,我正在使用tf.keras.callbacks.ModelCheckpoint.

tf.keras.callbacks.ModelCheckpoint(
    filepath, monitor='val_loss', verbose=0, save_best_only=False,
    save_weights_only=False, mode='auto', save_freq='epoch', options=None, **kwargs
)

为了以后继续训练,我需要保存optimizer状态。保存状态的可靠方法optimizer是通过save_weights_only=False,并使用'tf''h5'save_format 保存整个模型。我在这里读到,TensorflowSavedModel格式是保存模型的推荐方法。但是,由于某种原因,使用该格式需要很多时间,每当模型在每个末尾保存时(另一方面,save_format='h5'保存整个模型非常快)。现在,当我save_weights_only=True使用'tf'格式传递时,它会将权重保存为检查点。我在想,如果save_weights_only=True, save_format='tf'还保存optimizer状态?[据我所知,save_weights_only=True, save_format='h5'只保存权重而不是优化器。]

如果有人能澄清这一点,我会很高兴,或者指出我在某个地方是否错了。

标签: pythonmachine-learningkerastensorflow2.0

解决方案


推荐阅读