Изменить формат метки для обучения - PullRequest
0 голосов
/ 01 июля 2019

Обычно, если вы тренируетесь с керасом, model.fit ожидает, что данные поезда будут иметь форму (сэмплы, временные шаги, входные данные) и метку (сэмплы, выходные данные). Есть ли способ изменить соответствующую метку на (сэмплы * временные шаги, выходные данные) или (сэмплы, временные шаги, входные данные). Таким образом, один образец соответствует ярлыку len (sample) *, а не только одному ярлыку?

1 Ответ

0 голосов
/ 01 июля 2019

Да. Вы можете иметь любую форму в качестве выходного слоя. Например, авто-кодеры будут иметь ту же форму вывода, что и форма ввода.

Пример игрушки:

sequence_length = 20
n_features = 4
def make_model():
  inp = Input(shape=(sequence_length, n_features,))
  encoder = LSTM(16, return_sequences=True)(inp)
  vector = LSTM(32)(encoder)
  decoder_in = RepeatVector(sequence_length)(vector)
  decoder = LSTM(16, return_sequences=True)(decoder_in)
  out = Dense(4)(decoder)
  model = Model(inp, out)
  model.compile('adam', 'mse')
  return model

model = make_model()
model.summary()

В этом случае слой vector имеет форму (32,) (т.е. происходит уменьшение размерности по сравнению с входом), а выходной слой имеет те же размеры, что и вход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...