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

TensorFlow Keras回归报错:AttributeError: 'super'对象无'sklearn_tags'属性

解决AttributeError: 'super' object has no attribute 'sklearn_tags'错误

错误原因分析

这个错误主要由两个问题导致:

  1. 任务类型不匹配:你构建的是二分类模型(输出用sigmoid激活、损失函数为BinaryCrossentropy),但误用了回归任务专用的KerasRegressor,这会引发后续兼容性问题。
  2. 版本兼容问题:Scikeras与Scikit-learn版本不匹配,sklearn_tags是Scikit-learn 1.1+版本引入的属性,若你使用的Scikeras版本较高但Scikit-learn版本过低,就会出现该属性找不到的错误。

修复步骤

  • 替换任务包装器:将KerasRegressor改为KerasClassifier,适配二分类任务:
    from tensorflow import keras 
    from scikeras.wrappers import KerasClassifier  # 替换为分类专用包装器
    def build_model():
        model = keras.Sequential([
            keras.layers.Dense(32, activation='tanh', input_shape=[len(X.keys())]),
            keras.layers.Dense(16, activation='tanh'),
            keras.layers.Dense(1, activation="sigmoid")
        ])
        optimizer = keras.optimizers.RMSprop()
        model.compile(loss=keras.losses.BinaryCrossentropy(),
                      optimizer=optimizer,
                      metrics=[keras.metrics.BinaryAccuracy()])
        return model
    kr = KerasClassifier(build_model, epochs=100, batch_size=10000, verbose=1)
    kr.fit(X_train, y_train, validation_split=0.2)
    
  • 调整版本兼容:
    • 若你使用的Scikit-learn版本低于1.1,安装兼容的Scikeras版本:
      pip install scikeras==0.9.0
      
    • 若要使用最新版Scikeras,升级Scikit-learn到1.1及以上:
      pip install --upgrade scikit-learn
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:37:01