簡體   English   中英

ValueError: 層序貫_17 的輸入 0 與層不兼容:預期 ndim=3,發現 ndim=2。 收到的完整形狀:[無,121]

[英]ValueError: Input 0 of layer sequential_17 is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: [None, 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)

嘗試這個

numpy.expand_dims(X_train, axis=0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM