如果是,那么他们是如何做到的?我的意思是,假设我有一个通过子类化定制的模型。我的优化器是一个单独的对象。一个命令如何保存两个不同物体的权重?特别是,它如何知道这两个对象是相关的?是由于 model.compile 完成的魔法吗?
编辑:我刚刚意识到模型有一个属性 model.optimizer,Keras 就是这样做的吗?使优化器成为模型的属性并与其一起保存?
No, model.save_weights()
只保存模型的参数。模型编译时所用内容的状态(优化器、回调、损失、指标)将不会被保存。
你应该使用model.save()
保存模型的优化器和其他训练配置。请参阅本文档 https://www.tensorflow.org/beta/guide/keras/saving_and_serializing#whole-model_saving(将优化器与模型一起保存的最直接方法)。
如果您出于某种原因想准确使用model.save_weights()
, 请参阅这个计算器问题 https://stackoverflow.com/questions/49503748/save-and-load-model-optimizer-state关于如何保存模型的优化器(可能有点棘手)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)