model.save_weights是否包含优化器状态?

时间:2019-07-08 21:02:27

标签: tensorflow keras

如果是,那么他们是如何做到的?我的意思是说我有一个通过子类化定制的模型。我的优化器是一个单独的对象。一个命令如何保存两个不同对象的权重?特别是,它如何知道这两个对象是相关的?这是由于model.compile完成了魔术吗?

编辑:我刚刚意识到一个模型具有属性model.optimizer,这是Keras怎么做的?将优化器设置为模型的属性,并将其与模型一起保存?

1 个答案:

答案 0 :(得分:1)

否,model.save_weights()仅保存模型的参数。编译模型所用的内容(优化程序,回调,损失,指标)的状态将不会保存。

您应该使用model.save()保存模型的优化器和其他训练配置。请参阅this documentation(将优化程序与模型保存在一起的最简便的方法)。

如果您出于某种原因想确切使用model.save_weights(),请参阅this stackoverflow question,了解如何保存模型的优化器(可能有些棘手)。