【问题标题】:Missing Positional Argument X缺少位置参数 X
【发布时间】:2021-12-25 15:53:32
【问题描述】:

我目前正在努力设置随机搜索,以帮助找到模型的最佳参数。但是我遇到了一个在谷歌上找不到的错误:随机搜索模型的 .fit 函数中缺少位置参数“x”。

这就是我的模型和随机搜索模型的代码。

# Build model
def build_model(il_neurons=100, hl_neurons=50, num_hl=10):
    model = Sequential()
    model.add(Dense(il_neurons, input_dim=num_inputs, activation='relu'))
    for i in range(num_hl):
        model.add(Dense(hl_neurons, activation='relu'))
    model.add(Dense(1))
    
    model.compile(optimizer=optimizer, loss="mean_squared_error", metrics=[RootMeanSquaredError()])
    return model
'''Random Search Model'''
# Parameters
il_neurons = range(75, 151, 5)
hl_neurons = range(10, 61, 3)
num_hl = range(1, 16, 1)

parameters = {"model__il_neurons": il_neurons,
              "model__hl_neurons": hl_neurons,
              "model__num_hl": num_hl}


# Model
model = KerasRegressor(build_fn=build_model)

rscv_model = RandomizedSearchCV(estimator=model,
                                param_distributions=parameters,
                                n_iter=20,
                                scoring='neg_root_mean_squared_error',
                                cv=kfold,
                                n_jobs=-1,
                                verbose=0)

history = rscv_model.fit(x=X_train_pca,
                         y=y_train,
                         validation_split=0.1,
                         epochs=epochs,
                         batch_size=batch_size,
                         callbacks=callbacks,
                         shuffle=True,
                         verbose=0)

单独运行相同的模型不会引发任何错误。工作得很好。但是运行随机搜索模型代码会出现这个错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_41/3876581477.py in <module>
     28                          callbacks=callbacks,
     29                          shuffle=True,
---> 30                          verbose=0)
     31 
     32 print("Best Parameters:")

/opt/conda/lib/python3.7/site-packages/sklearn/utils/validation.py in inner_f(*args, **kwargs)
     70                           FutureWarning)
     71         kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 72         return f(**kwargs)
     73     return inner_f
     74 

TypeError: fit() missing 1 required positional argument: 'X'

我尝试删除除 X 和 y 参数之外的所有内容。那没有帮助。我已经仔细检查以确保我的 X 数据确实存在;确实如此。我仔细检查了我的 X 数据类型是否正确;它是。我已经用谷歌搜索了这个问题,我能想到的所有方式,但我找不到任何遇到同样问题的人。

基本上,我不知道该怎么做。帮助。

【问题讨论】:

  • 是否可以像使用大写 X 而不是小写 x 一样简单。参数显示如下 fit(X, y[, sample_weight])

标签: python scikit-learn neural-network tf.keras


【解决方案1】:

rscv_model.fit 需要 X(大写 X)参数,而不是小写。 看看docs

【讨论】:

  • 小崽子。这解决了它。非常感谢。
猜你喜欢
  • 2021-09-11
  • 2019-06-13
  • 1970-01-01
  • 2021-12-05
  • 2018-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-17
相关资源
最近更新 更多