У меня есть pandas фрейм данных, который создается с помощью train_test_split, называемого x_train, с 4012 строками, все значения в фрейме данных являются либо int, либо float (после разделения поезда / теста) и 42 столбцами (после разделения поезда / теста) , Я пытаюсь обучить рекурсивную нейронную сеть с ячейками LSTM, но моя программа продолжает выдавать ошибку, когда модель пытается ввести фрейм данных. Я пытался изменить структуру данных, это тоже не работает, но, возможно, я делаю это неправильно. Пожалуйста, дайте мне знать, если вы знаете, как это исправить и / или знаете, как я могу сделать мою модель более эффективной.
Вот мой код:
df = pd.read_csv("data.csv")
x = df.loc[:, df.columns != 'result']
y = df.loc[:, df.columns == 'result']
y = y.astype(int)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, shuffle = False)
model = Sequential()
model.add(LSTM(128, input_shape = (4012, 42), activation = 'relu', return_sequences = True)) #This is the line where the error happens.
model.add(Dropout(0.2))
model.add(LSTM(128, activation = 'relu'))
model.add(Dropout(0.2))
model.add(Dense(32, activation = 'relu'))
model.add(Dropout(0.2))
model.add(Dense(2, activation = 'softmax'))
opt = tf.keras.optimizers.Adam(lr = 10e-3, decay=1e-5)
model.compile(loss = 'sparse_categorical_crossentropy', optimizer = opt, metrics = ['accuracy'])
model.fit(x_train, y_train, epochs = 5, validation_data = (x_test, y_test))
Ошибка, которую я получение:
ValueError: Ошибка при проверке ввода: ожидалось, что lstm_input имеет 3 измерения, но получил массив с формой (4012, 42)
Кто-то, пожалуйста, помогите мне.