Как я могу использовать различную длину ввода и вывода time_steps в Keras и Tensorflow? - PullRequest
0 голосов
/ 24 марта 2019

Давайте предположим, что у меня есть такая модель Keras:

model = Sequential()

    model.add(LSTM(8, return_sequences=True, input_shape=(None, 1)))
    model.add(LSTM(8, return_sequences=True))
    model.add(TimeDistributed(Dense(1)))

    model.compile(loss='mean_squared_error',
                  optimizer='adam')

И final_input_sentence, и final_output_sentence имеют форму этой формы (1,x,1), где x - это длина более длиннойстрока.Я вычисляю это, используя цикл while:

while len(input_sentence) != len(output_sentence):

    if len(input_sentence) < len(output_sentence):
        input_sentence.append([0])
    elif len(input_sentence) > len(output_sentence):
        output_sentence.append([0])

и подгоняю эту модель в реальном времени:

model.fit(final_input_sentence, final_output_sentence, epochs=1, verbose=0)

Мой вопрос: как мне подобрать модель с разными временными шагами (вероятно, у меня будетпоменять модель но вопрос как?)Так, например, форма ввода будет (1,x,1), а форма вывода (1,y,1).Этот код работает правильно, однако, когда я удаляю цикл while, я получаю сообщение об ошибке, подобное этому Incompatible shapes: [1,23,1] vs. [1,3,1].Я знаю, что могу заполнять нулями и т. Д., Но я хотел бы создать выходное значение без каких-либо ограничений по длине.Любые идеи, как я могу это сделать?Если что-то неясно или требуется какая-либо дополнительная информация, просто дайте мне знать.

...