训练 LSTM 模型时不一致的样本警告

问题描述 投票:0回答:0

之前我尝试通过调整在 python 中实现 LSTM。但是,

fit
函数不断给我错误,例如

ValueError: Found input variables with inconsistent numbers of samples: [54, 648]

我认为错误发生是因为y_pred 和y_true 值不匹配? (这是我在网上听到的),但我真的很困惑,因为您可以看到我的代码,它们确实具有相同的长度 = 161.

我不太确定发生了什么,因为这段代码上周工作正常。我希望有人能帮我一把。

这是我的代码和逻辑:

  1. 我用12个月的数据(13个特征)来预测下个月的数据
data_train_x.shape: (161, 12, 13)
data_train_y.shape: (161,)
  1. 我定义我的构建模型函数
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
  1. 我设置了我的网格搜索
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)
  1. 适合
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]

python tensorflow keras neural-network lstm
© www.soinside.com 2019 - 2024. All rights reserved.