为什么要在Kerasload_model函数中提到损失函数?
Why do we need to mention the loss function in Keras load_model function?
我使用自定义损失函数创建了一个 Keras 模型并保存了它。当我使用 Keras load_model()
函数重新加载训练模型进行预测时,我必须将自定义损失函数传递给 custom_objects
参数:
new_model=load_model('yolo_1.model',custom_objects={'custom_loss':custom_loss})
我的问题是,为什么我们要在load_model()
中提到自定义损失函数?我认为在预测过程中不需要损失函数。
这是因为 save
方法的 include_optimizer
参数默认设置为 True
。因此,优化器和损失函数将被保存,因此当您使用 load_model
函数时它们将被加载。
但是,如果您只想将模型用于预测,则不需要保存优化器,因此在保存模型时将 include_optimizer
设置为 False
:
model.save('my_model.h5', include_optimizer=False)
这样优化器和使用的损失函数将不会被保存,因此您不需要在加载模型时指定您使用的自定义损失函数。
我使用自定义损失函数创建了一个 Keras 模型并保存了它。当我使用 Keras load_model()
函数重新加载训练模型进行预测时,我必须将自定义损失函数传递给 custom_objects
参数:
new_model=load_model('yolo_1.model',custom_objects={'custom_loss':custom_loss})
我的问题是,为什么我们要在load_model()
中提到自定义损失函数?我认为在预测过程中不需要损失函数。
这是因为 save
方法的 include_optimizer
参数默认设置为 True
。因此,优化器和损失函数将被保存,因此当您使用 load_model
函数时它们将被加载。
但是,如果您只想将模型用于预测,则不需要保存优化器,因此在保存模型时将 include_optimizer
设置为 False
:
model.save('my_model.h5', include_optimizer=False)
这样优化器和使用的损失函数将不会被保存,因此您不需要在加载模型时指定您使用的自定义损失函数。