Keras Sklearn Tuner 模块“sklearn”没有属性“管道”
Posted
技术标签:
【中文标题】Keras Sklearn Tuner 模块“sklearn”没有属性“管道”【英文标题】:Keras Sklearn Tuner module 'sklearn' has no attribute 'pipeline' 【发布时间】:2021-11-07 03:30:35 【问题描述】:from sklearn import ensemble
from sklearn import linear_model
def build_model(hp):
model_type = hp.Choice('model_type', ['random_forest', 'ridge'])
if model_type == 'random_forest':
with hp.conditional_scope('model_type', 'random_forest'):
model = ensemble.RandomForestClassifier(
n_estimators=hp.Int('n_estimators', 10, 50, step=10),
max_depth=hp.Int('max_depth', 3, 10))
elif model_type == 'ridge':
with hp.conditional_scope('model_type', 'ridge'):
model = linear_model.RidgeClassifier(
alpha=hp.Float('alpha', 1e-3, 1, sampling='log'))
else:
raise ValueError('Unrecognized model_type')
return model
tuner = kt.tuners.Sklearn(
oracle=kt.oracles.BayesianOptimization(
objective=kt.Objective('score', 'max'),
max_trials=10),
hypermodel=build_model,
directory=".")
X, y = datasets.load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = model_selection.train_test_split(
X, y, test_size=0.2)
tuner.search(X_train, y_train)
best_model = tuner.get_best_models(num_models=1)[0]
在 keras-tuner 上的示例中执行此代码 https://keras.io/api/keras_tuner/tuners/sklearn/
我收到如下所示的错误。应该怎么解决?
c:\users\99ans\appdata\local\programs\python\python39\lib\site-packages\keras_tuner\tuners\sklearn_tuner.py in run_trial(self, trial, X, y, sample_weight, groups)
161 sample_weight[train_indices] if sample_weight is not None else None
162 )
--> 163
164 model = self.hypermodel.build(trial.hyperparameters)
165 #if isinstance(model, Pipeline):
AttributeError: module 'sklearn' has no attribute 'pipeline'
【问题讨论】:
【参考方案1】:添加
import sklearn.pipeline
会暂时解决这个问题。
这是一个最近的问题,将在下一个版本中修复。
你可以在这里找到更多关于它的信息https://github.com/keras-team/keras-tuner/issues/600
【讨论】:
以上是关于Keras Sklearn Tuner 模块“sklearn”没有属性“管道”的主要内容,如果未能解决你的问题,请参考以下文章
TensorBoard 的 Keras Tuner Trials 目录的命名
将 TensorBoard 与 Keras Tuner 一起使用
使用 Keras Tuner RandomSearch 错误进行超参数调优