Форма входного вектора при использовании автоэнкодеров LSTM - PullRequest
0 голосов
/ 27 февраля 2019

Я хочу использовать автоэнкодеры LSTM для моих многомерных данных временных рядов.У меня есть последовательность длины (300000000,4).Я действительно не понимаю, как изменить мои данные.Если я изменим его на (1,300000000,4), то у меня возникнут проблемы с памятью, поскольку количество временных шагов не может быть таким большим.Когда я изменяю его как (300000000,1,4), тогда моя программа работает нормально.Тем не менее, я не уверен, что автоэнкодеры LSTM по-прежнему ведут себя как RNN и находит ли они последовательности в последовательности.У меня 9 таких последовательностей, и я хочу, чтобы мои автоэнкодеры выучили все паттерны.Я новичок в машинном обучении и последовательном обучении. Пожалуйста, помогите мне с тем же.Я прилагаю свой код для автоэнкодеров LSTM.

def repeat_vector(args):

[layer_to_repeat, sequence_layer] = args

return RepeatVector(K.shape(sequence_layer)[1])(layer_to_repeat)

encoder_input = Input(shape=(None, self._input_features))

encoder_output = LSTM(self._latent_space)(encoder_input)

decoder_input = Lambda(repeat_vector, output_shape=(None,   self._latent_space))([encoder_output, encoder_input])

decoder_output = LSTM(self._input_cells, return_sequences=True)(decoder_input)

self._autoencoder = Model(encoder_input, decoder_output) `
...