之前我尝试通过调整在 python 中实现 LSTM。但是,
fit
函数不断给我错误,例如
ValueError: Found input variables with inconsistent numbers of samples: [54, 648]
我认为错误发生是因为y_pred 和y_true 值不匹配? (这是我在网上听到的),但我真的很困惑,因为您可以看到我的代码,它们确实具有相同的长度 = 161.
我不太确定发生了什么,因为这段代码上周工作正常。我希望有人能帮我一把。
这是我的代码和逻辑:
data_train_x.shape: (161, 12, 13)
data_train_y.shape: (161,)
def build_model(n1):
grid_model = Sequential()
grid_model.add(LSTM(n1,return_sequences=True,input_shape=(12,13)))
#grid_model.add(LSTM(n_2))
grid_model.add(Dropout(0.2))
grid_model.add(Dense(1))
grid_model.compile(loss = 'mse',optimizer = "adam",
metrics = ["mae",\
"mse",
"mape"])
return grid_model
model = KerasRegressor(model = build_model,
verbose=0,
batch_size = 20,
epochs = 20,
shuffle = False)
n1 = [16,32,64,128,256]
para_grid = dict(model__n1=n1)
grid_search = GridSearchCV(estimator=model,
param_grid=para_grid,
cv=3)
grid_search.fit(data_train_x,data_train_y)
结果片段是这样的:
/usr/local/lib/python3.9/dist-packages/sklearn/model_selection/_validation.py:778: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/dist-packages/sklearn/model_selection/_validation.py", line 767, in _score
scores = scorer(estimator, X_test, y_test)
File "/usr/local/lib/python3.9/dist-packages/sklearn/metrics/_scorer.py", line 444, in _passthrough_scorer
return estimator.score(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/scikeras/wrappers.py", line 1120, in score
return self.scorer(y, y_pred, sample_weight=sample_weight, **score_args)
File "/usr/local/lib/python3.9/dist-packages/scikeras/wrappers.py", line 1717, in scorer
return sklearn_r2_score(y_true, y_pred, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/sklearn/metrics/_regression.py", line 911, in r2_score
y_type, y_true, y_pred, multioutput = _check_reg_targets(
File "/usr/local/lib/python3.9/dist-packages/sklearn/metrics/_regression.py", line 100, in _check_reg_targets
check_consistent_length(y_true, y_pred)
File "/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py", line 397, in check_consistent_length
raise ValueError(
ValueError: Found input variables with inconsistent numbers of samples: [54, 648]