首页 > 解决方案 > ValueError: 层序贯_17 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:[无,121]

问题描述

我正在尝试使用 NSL-KDD 数据集构建循环神经网络。当我运行下面的代码时,我不断收到ValueError:层序贯_17 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:[无,121]。我不知道为什么,我可能与输入形状有关?我不确定,因为我还是 python 新手。如果有帮助的话,我也已经完成了所有的数据预处理。

from keras.utils import np_utils
from keras.models import Sequential
from keras.preprocessing import sequence
from keras.layers import Dense, Dropout, Activation, Embedding
from keras.layers import LSTM, SimpleRNN, GRU
from keras.utils import np_utils
from keras import callbacks
from keras.callbacks import ModelCheckpoint, EarlyStopping, ReduceLROnPlateau, CSVLogger
import tensorflow.keras as keras
print (X_train.shape),(y_train2.shape)
(125973, 121)
(None, (125973,))
batch_size = 99
epcochs = 100
model = Sequential()
model.add(LSTM(10,batch_input_shape =(None, 99, 1), return_sequences=True ))
model.add(Dropout(0.01))
model.add(LSTM(10,return_sequences=True))
model.add(Dropout(0.01))
model.add(LSTM(10,return_sequences=False))
model.add(Dropout(0.01))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy', optimizer=keras.optimizers.Adam() , metrics=['accuarcy'])
fit=model.fit(X_train, y_train2, batch_size=batch_size, epochs=100, validation_data=(X_test, y_test2))
loss, accuracy = model.evaluate(X_test, y_test1)
print("\nLoss: %.2f, Accuracy: %.2f%%" % (loss, accuracy*100))
y_pred = model>predict_classes(X_test)

标签: pythontensorflowmachine-learningneural-networkrecurrent-neural-network

解决方案


尝试这个

numpy.expand_dims(X_train, axis=0)

推荐阅读