【问题标题】:Does model.save_weights include optimizer state?model.save_weights 是否包含优化器状态?
【发布时间】:2019-11-18 10:01:25
【问题描述】:

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

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

【问题讨论】:

  • 你的问题还不清楚!你想找到什么?自定义优化器的自定义函数代码/公式还是什么?
  • @Cs20 model.save 如何包含优化器的权重,优化器是与模型不同的分离对象?

标签: tensorflow keras


【解决方案1】:

不,model.save_weights() 只保存模型的参数。模型编译时使用的东西(优化器、回调、损失、指标)的状态不会被保存。

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

如果你出于某种原因想完全使用model.save_weights(),请参考this stackoverflow question了解如何保存模型的优化器(可能有点棘手)。

【讨论】:

  • model.save() 仅适用于使用函数式 API 制作的模型,如果您深入挖掘并使用更原始的方式构建它,那么它将无法序列化。节省重量是我能得到的最好的。
猜你喜欢
  • 2019-11-10
  • 2010-11-27
  • 2022-11-02
  • 2013-05-02
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-08
相关资源
最近更新 更多