【发布时间】:2020-08-20 21:31:23
【问题描述】:
假设我们有一些模型,包括在训练期间很重要的自定义损失和指标。是否可以保存完整的模型,所以 weights + graphdef / pb-file,没有自定义对象?
在推理过程中,不需要自定义损失和指标,因此...
tf.keras.models.load_model("some_model", custom_objects={...})
...只会使推理代码更复杂,因为需要包含自定义目标代码以进行推理(尽管未使用)。
但是,tf.keras.callbacks.ModelCheckpoint(即使使用include_optimizer=False)以及调用model.save() 总是保存模型定义包括自定义对象。
因此,只需使用...加载模型
tf.keras.models.load_model("some_model")
...总是会失败并抱怨缺少自定义对象。
是否可以在没有自定义损失/指标的情况下以某种方式保存整个模型?要获得易于加载的“推理”版本的网络?
或者是将所有内容冻结为 TFLite 模型的唯一解决方案?
当然,可以简单地使用model.save_weights(),但实际代码需要包含在以后进行推理,这是不希望的。
【问题讨论】:
标签: python tensorflow keras save restore