如何用 3 维 X_train 和 Y_trains 编写 LSTM 模型?

数据挖掘 深度学习 喀拉斯 lstm
2022-03-01 20:14:24

我有 X_train 和 Y_train 的[2160,24,3]尺寸。但是当我尝试这样一个简单的 LSTM 时:

model = Sequential()
model.add(LSTM(24 , return_sequences = True))
model.add(Dropout(dp)) 

它给了我这个错误信息:

ValueError:检查目标时出错:预期 dropout_192 的形状为 (24, 24),但数组的形状为 (24, 3)

当我尝试像这样更改我的代码时:

model = Sequential()
model.add(LSTM(24 , return_sequences = False))
model.add(Dropout(dp)) 

model.add(RepeatVector(24))

我得到:

ValueError:检查目标时出错:预期 repeat_vector_55 的形状为 (24, 24) 但得到的数组的形状为 (24, 3)

还:

model = Sequential()
model.add(LSTM(24 , return_sequences = False))
model.add(Dropout(dp))   
model.add(RepeatVector(24))
model.add(TimeDistributed(Dense(1))) 

或者:

model = Sequential()
model.add(LSTM(24 , return_sequences = False))
model.add(Dropout(dp))   
model.add(RepeatVector(24))
model.add(LSTM(24 , return_sequences = True))
model.add(Dropout(dp)) 
model.add(TimeDistributed(Dense(1))) 

给我:

ValueError:检查目标时出错:预期 time_distributed_56 的形状为 (24, 1) 但得到的数组的形状为 (24, 3)

我很困惑,不知道如何解决?我想要的是训练一个大小为 X_train 和 Y_train 的 LSTM 模型[2160,24,3]我怎样才能做到这一点?

1个回答

在上述所有情况下,您都没有正确设置输出形状。最后一层应该创建 3 个特征。试试这个例如:

model = Sequential()
model.add(LSTM(24, return_sequences = True))
model.add(Dropout(dp)) 
model.add(Dense(3))