Я новичок в Deep Learning и пытаюсь создать эту простую архитектуру LSTM в Keras с использованием Google Colab:
- Входной слой из 12 входных нейронов
- Один Текущий скрытый слой из 1 скрытого нейрона на данный момент
- Выходной слой из 1 выходного нейрона
Первоначальная ошибка:
ValueError: Error when checking input: expected lstm_2_input to have 3 dimensions, but got array with shape (4982, 12).
Тогда я попробовал:
input_shape=train_x.shape[1:]
Но я получил:
ValueError: Input 0 is incompatible with layer lstm_1: expected ndim=3, found ndim=2
Тогда я попробовал:
X_train = np.reshape(X_train, X_train.shape + (1,))
Но я снова получил другую ошибку:
ValueError: Must pass 2-d input
Тогда я попробовал:
train_x = np.reshape(train_x, (train_x.shape[0], 1, train_x.shape[1]))
Но это не сработало:
Must pass 2-d input
Вот мой оригинальный код:
df_tea = pd.read_excel('cleaned2Apr2019pt2.xlsx')
df_tea.head()
train_x, valid_x = model_selection.train_test_split(df_tea,random_state=2, stratify=df_tea['offer_Offer'])
train_x.shape #(4982, 12)
valid_x.shape #(1661, 12)
model = Sequential()
model.add(LSTM(32, input_shape=train_x.shape, return_sequences=True))
model.add(LSTM(32, return_sequences=True))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['acc'])
history = model.fit(train_x, valid_x,
epochs=10,
batch_size=128,
validation_split=0.2)
Я просмотрел несколько предложений stackoverflow и github для аналогичной проблемы, но ни один из них не работает.
Может ли кто-нибудь помочь мне, пожалуйста, так как я не понимаю, почему все эти методы потерпели неудачу.