加载自定义指标失败

时间:2020-03-17 05:21:33

标签: python tensorflow

我有一个名为f1_metric的自定义指标,

并且我正在尝试通过以下代码将此自定义指标加载到我的模型中

def f1_metric(y_true, y_pred):
    true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
    possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))
    predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
    precision = true_positives / (predicted_positives + K.epsilon())
    recall = true_positives / (possible_positives + K.epsilon())
    f1_val = 2*(precision*recall)/(precision+recall+K.epsilon())
    return f1_val


metric_dict = {
    'f1_metric':f1_metric
}

model = tf.keras.models.load_model(models_save,custom_objects = metric_dict)

但是我仍然遇到错误显示ValueError: Unknown metric function:f1_metric

的情况

有人可以帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试执行以下操作:

x = f1_metric
metric_dict = {'x':f1_metric}

如果这不起作用,请尝试在您的计算机上更新Keras和TensorFlow 设备,然后再次运行代码。

如果同样失败,请参考https://stackoverflow.com/a/51706192/10399281