Как бороться с окончанием токена в декодере Keras для пакетных образцов - PullRequest
0 голосов
/ 14 мая 2019

Обучена модель последовательности эндоцер-декодер. Чтобы применить модель для вывода, прогнозирование на t-1 -ом выходе декодера используется в качестве ввода на t. Если у нас есть ending_token, и я хочу, чтобы декодер остановился один раз, ending_token будет выводом на t.

На этапе обучения проблему можно решить с помощью Masking(mask_value=ending_token). И на этапе вывода, если каждый раз проверяется только одно примерное предложение, я мог бы использовать:

output = []
while decoder_output_id != ending_token:
    decoder_output_id, decoder_status = DECODER_model.predict([decoder_output_id, decoder_status])
    output.append(decoder_out_id)

Однако, если я хочу сделать вывод о партии образцов, как мне поступить, чтобы каждая выборка в партии могла заканчиваться в разное время. Одна идея состоит в том, чтобы зафиксировать длительность выходного времени и принудительно заставить выходной сигнал после того, как ending_token кажется равным 0, но это приводит к накладным расходам.

...