Keras:带有自定义损失函数的错误加载模型

use*_*123 4 python deep-learning keras

我定义了一个自定义损失函数如下:

weight_for_hierarchical_error = K.variable(np.ones(16))

def mse_weighted(y_true, y_pred):
    return K.mean(weight_for_hierarchical_error * K.square(y_pred - y_true), axis=-1)
Run Code Online (Sandbox Code Playgroud)

当我将模型保存在 hdf5 文件中,然后尝试使用 加载它时load_model,我收到以下错误信息:

ValueError: Unknown loss function:mse_weighted

有谁知道如何解决这个问题?

谢谢!

use*_*123 5

这是通过将自定义字典对象传递给以下来解决的load_model

https://github.com/fchollet/keras/issues/5916 https://github.com/fchollet/keras/issues/3977

  • 惊人的。为了节省人们一些时间,这对我有用:如果您加载模型仅用于预测(无需训练),则需要将编译标志设置为 False:`model = load_model('model.hdf5',compile=False)` (2认同)