我有在多层感知器架构上工作的数据看起来像这样
X_train_feature.shape
(52594, 16)
X_train_feature[0]
array([1.18867208e-03, 1.00000000e+00, 8.90000000e+01, 8.00000000e+00,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00])
y_train
(52594, 2)
y_train[0].toarray()
array([[0., 1.]])
第一个维度:样本数,第二个维度:X_train 是特征的数量,y_train 是 one-hot 编码器。
我想在 LSTM/Bi-LSTM 上使用相同的数据,所以我从互联网上复制代码并将输入值更改为与 MLP 相同
def define_model():
model = Sequential()
model.add(LSTM(20, input_shape=X_train_feature[0].shape, return_sequences=True))
model.add(TimeDistributed(Dense(1, activation='sigmoid')))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy']) # compile
print('Total params: ', model.count_params())
return model
但是当我尝试创建模型时,将附加有关输入形状的错误
model = define_model()
ValueError: Input 0 is incompatible with layer lstm_30: expected ndim=3, found ndim=2
我需要调整我的数据以应用于 LSTM 还是需要更改架构配置?太感谢了。
桃花长相依
翻过高山走不出你
相关分类