Автоэнкодер LSTM Проблема измерения с помощью Keras - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь сделать автоэнкодер с Keras.У меня ошибка как показано ниже

ValueError: Ошибка при проверке ввода: ожидалось, что lstm_1_input будет иметь 3 измерения, но получил массив с формой (480, 7)

Этоследующая информация о данных

df.shape => (480, 7)

timesteps = 15
dim = 7
lH = LossHistory()

model = Sequential()
model.add(LSTM(50, input_shape=(timesteps,dim), return_sequences=True))
model.add(Dense(dim))
model.compile(loss='mae',optimizer = 'adam')

и вот проблема при использовании fit

model.fit(data,data, epochs=20, batch_size=100, validation_data=(data,data),verbose=0, shuffle=False, callbacks=[lH])

1 Ответ

0 голосов
/ 12 декабря 2018

Из этой ссылки вы можете настроить авто-кодировщик как

inputs = Input(shape=(timesteps, input_dim))
encoded = LSTM(latent_dim)(inputs)

decoded = RepeatVector(timesteps)(encoded)
decoded = LSTM(input_dim, return_sequences=True)(decoded)

sequence_autoencoder = Model(inputs, decoded)
encoder = Model(inputs, encoded)

Но вы должны выбрать временные шаги для семпла.Например, если вы решите иметь 10 шагов на каждую выборку, то вы можете «нарезать» все свои данные с 480 наблюдениями на 48 выборок с 10 временными шагами.Теперь форма ввода будет (48, 10, 7).

...