首页 > 解决方案 > 如何使用自定义优化器加载 keras 保存的模型

问题描述

我已经使用自定义优化器编译和训练了一个 keras 模型。我保存了模型,但是当我尝试加载模型时,它会抛出一个错误,指出ValueError: Unknown optimizer: MyOptimizer. 我试图将 MyOptimizer 作为自定义对象传递,例如 : models.load_model('myModel.h5', custom_objects={'optimizer':MyOptimizer}),但它仍然会引发错误。如何将模型加载到带有自定义对象的 keras 模型?

标签: tensorflowkerasdeep-learningkeras-layerkeras-2

解决方案


我遇到了同样的问题:)

我通过加载模型使其工作models.load_model('myModel.h5', compile=False)

从 keras源代码

如果在保存的模型中找到优化器,则模型已经编译。否则,模型未编译并会显示警告。当compile设置为 False 时,编译将被忽略而没有任何警告。

加载未编译的模型后,我可以使用自定义优化器再次编译它。


推荐阅读