You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VGG16迁移学习模型加载报错:未知指标f1_score的解决问询

模型加载报错:Unknown metric function: f1_score 的原因及解决方法

报错原因

  • Keras保存模型时,仅会记录内置指标、层的名称,自定义的f1_score不属于TensorFlow/Keras内置指标,保存后只留下函数名"f1_score",加载时无法找到对应的函数实现,因此触发该错误。
  • 编译模型时你将f1_score加入了METRICS列表,模型保存时会同步记录编译阶段的指标配置,但自定义函数的代码不会被自动序列化到H5文件中。

加载模型需传入的自定义对象

仅需将自定义的f1_score函数传入load_model的custom_objects参数即可。训练时使用的回调函数(ReduceLROnPlateau、ModelCheckpoint、EarlyStopping)属于训练流程工具,不影响模型结构与权重,加载时无需传入。

正确加载代码示例

def f1_score(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

# 加载模型
model = tf.keras.models.load_model('Study3_v1.h5', custom_objects={'f1_score': f1_score})

内容的提问来源于stack exchange,提问作者Ethan Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:18:16