Я пытаюсь обучить сеть LSTM выполнять двоичную классификацию без присмотра.
У меня есть матрица целых чисел в качестве входных данных, каждая строка - это отдельная трасса и каждый столбец - это особенность.
Это модель, которую я использовал:
time_steps = 4000
features = 25
model = Sequential()
model.add(LSTM(128, input_shape=(time_steps, features), name='lstm'))
model.add(Dense(1, activation='relu'))
model.summary()
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train, x_train, batch_size=batch_size, epochs=epochs, verbose=2)
И это ошибка, которую я получаю:
Ошибка при проверке цели: ожидается, что плотность_1 имеет 2 измерения, но получена массив с формой (1, 4000, 25)
Генерируется при попытке запуска model.fit
Вход формируется следующим образом:
x_train = np.array([input_array[:4000]])
Каждая трасса входа имеет 25 функций.
Я новичок в этой области и не могу понять, как решить проблему. Я проверил похожие тикеты, но ни один из них не помог мне.
Вот некоторые из тикетов, которые я проанализировал:
Ошибка при проверке цели: ожидалось, что dens_1 имеет 3 измерения, но получил массив с формой (118, 1)
ValueError: Ошибка при проверке цели: ожидается, что плотность_1 имеет 2 измерения, но получен массив с формой (68, 50, 50, 50, 1)
Ошибка при проверке цели: ожидается, что плотность_2 имеет 2 измерения, но получен массив с формой (1, 1226, 2)
ValueError: Ошибка при проверке цели: ожидается, что плотность_2 будет иметь 3 измерения, но получен массив с формой (10000, 1)