如何使用自定义损失函数加载Keras模型?

时间:2020-03-09 23:38:56

标签: r tensorflow keras loss-function

我创建了以下自定义损失函数:

ids

当我保存模型时,它工作正常。但是,当我使用以下方法加载模型时:

RMSE = function(y_true,y_pred) {
    k_sqrt(k_mean(k_square(y_pred - y_true))) 
}

我收到以下错误:

load_model_hdf5(filepath= "modelpath") 

也许这个问题与我之前提出的one有一些共同点。如何避免不断出现此错误?

1 个答案:

答案 0 :(得分:1)

由于您在模型中使用了 custom 损失函数,因此将模型保留在磁盘上时将不会保存损失函数,而是仅将其名称包含在模型文件中。然后,当您想在以后重新加载模型时,需要将存储名称对应的损失函数告知模型。要提供该映射,可以使用custom_objects函数的load_model_hdf5参数:

load_model_hdf5(filepath = "modelpath", custom_objects = list(RMSE = RMSE))

或者,在训练结束后,如果您只想使用模型进行预测,则可以将compile = FALSE参数传递给load_model_hdf5函数(因此,不需要并加载损失函数) :

load_model_hdf5(filepath = "modelpath", compile = FALSE)