model.save_weights(save_format='tf')是否保存优化器状态?

2024-04-26 12:20:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在TF2.1中实现一个基于Keras的U-Net模型。为此,我编写了一个自定义损失函数。我的目标是在每个epoch结束时保存模型/其权重。为此,我使用了^{}

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_格式保存整个模型。我读到here,Tensorflow SavedModel格式是保存模型的推荐方法。但是,出于某种原因,使用这种格式需要很多时间,每当在每个格式的末尾保存模型时(另一方面,save_format='h5'会非常快地保存整个模型)。现在,当我用'tf'格式传递save_weights_only=True时,它将权重保存为检查点。我想知道save_weights_only=True, save_format='tf'是否也保存了optimizer状态?[据我所知,save_weights_only=True, save_format='h5'只保存权重,而不保存优化器。]

如果有人能澄清这一点,或者指出我在什么地方错了,我会很高兴


Tags: 方法模型falsetrueformatonly状态save