Tensorflow 2x:参数 include_optimizer 在 tensorflow.keras.save_model 中究竟有什么影响

Tensorflow 2x: What exactly does the parameter include_optimizer affect in tensorflow.keras.save_model

我一直在浏览 tensorflow.keras.save_model() API 的文档,我遇到了参数 include_optimizer,我想知道不包括优化器有什么好处,或者如果优化器没有与模型一起保存,可能会出现什么问题?

为了为我的特定用例提供更多上下文,我想保存一个模型,然后将生成的 .pb 文件与 Tensorflow Serving 一起使用。有什么理由我需要保存优化器状态,​​保存它不会减少结果文件的整体大小吗?如果我不保存,模型可能无法在 TF 服务中正常工作?

保存优化器状态需要更多 space,因为优化器具有在训练期间调整的参数。对于一些优化器,这个 space 可能很重要,因为为每个调整后的模型参数保存了几个元参数。

保存优化器参数允许您以与保存检查点完全相同的状态重新开始训练,而如果不保存优化器状态,​​即使是相同的模型参数也可能会导致具有不同优化器参数的各种训练结果。

因此,如果您打算从保存的检查点继续训练您的模型,您可能还想保存优化器的状态。但是,如果您只是保存模型状态以供将来仅用于推理,则您不需要任何优化器状态。根据您想要在 TF 服务上部署模型的描述,听起来您只会对保存的模型进行推理,因此排除优化器是安全的。