Обучена модель последовательности эндоцер-декодер. Чтобы применить модель для вывода, прогнозирование на 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, но это приводит к накладным расходам.