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

使用scikeras.wrappers.KerasClassifier时遇ValueError:无法解析loss指标

解决scikeras.KerasClassifier接入sklearn Pipeline时的ValueError: Could not interpret metric identifier: loss错误

问题现象

将scikeras.wrappers.KerasClassifier接入scikit-learn Pipeline后,模型训练轮次可正常执行,但训练结束后触发如下错误:

ValueError: Could not interpret metric identifier: loss

复现代码

from sklearn.model_selection import KFold, cross_val_score
from sklearn.preprocessing import StandardScaler
from scikeras.wrappers import KerasClassifier
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.datasets import load_iris
import numpy as np

data = load_iris()
X = data.data
y = data.target

def create_model():
    model = Sequential()
    model.add(Dense(8, input_dim=4, activation='relu'))
    model.add(Dense(3, activation='softmax'))
    model.compile(loss='sparse_categorical_crossentropy',
                  optimizer='adam',
                  metrics=['accuracy'])
    return model

clf = KerasClassifier(build_fn=create_model,
                      epochs=100,
                      batch_size=10,
                      verbose=1)

pipeline = Pipeline([
    ('scaler', StandardScaler()),
    ('clf', clf)
])

kf = KFold(n_splits=5, shuffle=True, random_state=42)
results = cross_val_score(pipeline, X, y, cv=kf)
print("Cross-Validation Accuracy:", np.mean(results))

环境版本

  • scikeras==0.12.0
  • tensorflow==2.15.0

解决方案

将scikit-learn版本更换为1.4.1后,代码即可正常运行,该问题由scikit-learn版本不兼容导致。

内容的提问来源于stack exchange,提问作者Frederico Portela

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:37:26