缺少位置参数 X
Missing Positional Argument X
我目前正在努力设置随机搜索以帮助找到模型的最佳参数。但是我遇到了一个错误,我在 google 上的任何地方都找不到:随机搜索模型的 .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 数据类型是否正确;这是。我已经 google 以我能想到的所有方式解决这个问题,但我找不到遇到同样问题的人。
基本上,我不知道该做什么。帮助。
rscv_model.fit
需要一个 X
(大写 X)参数,而不是小写。
看看 docs.
我目前正在努力设置随机搜索以帮助找到模型的最佳参数。但是我遇到了一个错误,我在 google 上的任何地方都找不到:随机搜索模型的 .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 数据类型是否正确;这是。我已经 google 以我能想到的所有方式解决这个问题,但我找不到遇到同样问题的人。
基本上,我不知道该做什么。帮助。
rscv_model.fit
需要一个 X
(大写 X)参数,而不是小写。
看看 docs.