Токен EOS также важен для декодера: явный токен «конца» позволяет декодеру излучать последовательности произвольной длины.Декодер сообщит нам, когда он завершит излучение токенов: без «конечного» токена мы бы не знали, когда декодер завершит разговор с нами, а продолжение вывода токенов приведет к бреду.
Так что для приведенных примеров, У меня есть этот фрагмент из заголовка изображения , относящийся к машинному переводу:
# Which sequences are incomplete (didn't reach <end>)?
incomplete_inds = [ind for ind, next_word in enumerate(next_word_inds) if
next_word != word_map['<end>']]
complete_inds = list(set(range(len(next_word_inds))) - set(incomplete_inds))
Здесь токен <end>
похож на <EOS>
.Этот фрагмент ищет токен <end>
при создании заголовка для изображения.Разумеется, мы хотим знать, когда остановиться, и длина заголовка заранее определена, поскольку граница заголовка для изображения заранее известна на этапе обучения.