为什么我们需要在Keras负荷模型函数中提到损失函数?

2024-10-04 11:22:44 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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


Tags: 函数模型new参数modelobjects过程custom
1条回答
网友
1楼 · 发布于 2024-10-04 11:22:44

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

但是,如果只想使用模型进行预测,则不需要保存优化器,因此在保存模型时将include_optimizer设置为False

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

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

相关问题 更多 >