Tensorflow model.save_权重是否包括优化器状态?

Tensorflow model.save_权重是否包括优化器状态?,tensorflow,keras,Tensorflow,Keras,如果是,那么,他们是如何做到的?我的意思是,假设我有一个通过子类化定制的模型。我的优化器是一个分离的对象。一个命令如何保存两个不同对象的权重?特别是,它如何知道这两个对象是相关的?这是因为model.compile的魔力吗 编辑:我刚刚意识到模型有一个属性model.optimizer,Keras就是这样做的吗?使优化器成为模型的属性并将与之一起保存?否,模型。保存权重()仅保存模型的参数。编译模型时使用的内容(优化器、回调、损失、度量)的状态将不会保存 您应该使用model.save()保存模

如果是,那么,他们是如何做到的?我的意思是,假设我有一个通过子类化定制的模型。我的优化器是一个分离的对象。一个命令如何保存两个不同对象的权重?特别是,它如何知道这两个对象是相关的?这是因为model.compile的魔力吗


编辑:我刚刚意识到模型有一个属性model.optimizer,Keras就是这样做的吗?使优化器成为模型的属性并将与之一起保存?

否,
模型。保存权重()
仅保存模型的参数。编译模型时使用的内容(优化器、回调、损失、度量)的状态将不会保存

您应该使用
model.save()
保存模型的优化器和其他培训配置。请参阅(将优化器与模型一起保存的最直接的方法)


如果您出于某种原因想要准确地使用
model.save_weights()
,请参阅关于如何保存模型的优化器(可能有点棘手)。

您的问题仍然不清楚!你想找什么?自定义优化器的自定义函数代码/公式或什么?@Cs20 How's model.save包含优化器的权重,优化器是一个独立的对象,与model?model不同。save()仅适用于使用函数API创建的模型,如果您深入挖掘并使用更原始的方法构建它,则它将无法序列化。保存重量是我能得到的最好的。