【问题标题】:Why do we need to mention the loss function in Keras load_model function?为什么我们需要在 Keras load_model 函数中提到损失函数?
【发布时间】:2018-12-23 15:31:57
【问题描述】:

我使用自定义损失函数创建了一个 Keras 模型并保存了它。当我使用 Keras load_model() 函数重新加载经过训练的模型进行预测时,我必须将自定义损失函数传递给 custom_objects 参数:

new_model=load_model('yolo_1.model',custom_objects={'custom_loss':custom_loss}) 

我的问题是,为什么我们必须在load_model() 中提到自定义损失函数?我认为预测过程中不需要损失函数。

【问题讨论】:

    标签: python machine-learning keras loss-function


    【解决方案1】:

    这是因为save 方法的include_optimizer 参数默认设置为True。因此,优化器和损失函数将被保存,因此当您使用load_model 函数时它们将被加载。

    但是,如果您只想将模型用于预测,则无需保存优化器,因此在保存模型时将 include_optimizer 设置为 False

    model.save('my_model.h5', include_optimizer=False)
    

    这样优化器和使用的损失函数将不会被保存,因此您不需要指定加载模型时使用的自定义损失函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 2017-05-01
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多