Я сделал что-то подобное.Я думаю, единственное, чего вам не хватает, это добавить boundaries
к targets
в TranslationDataset._collect_single_seq()
.
Что-то вроде:
targets = self._get_data(key=self._main_classes_key, line_nr=line_nr)
targets["boundaries"] = self._get_data(key="boundaries", line_nr=line_nr)
Возможно, вам также придется добавить boundaries
до num_outputs
(или extern_data
) в конфигурации.
Ссылка на data:boundaries
должна работать.
Я не получил ваш последний вопрос.Каждый слой может читать ваши данные через "from": "data:boundaries"
, что дает вам данные, которые вы добавили в TranslationDataset
для каждого примера обучения.Тогда слой может использовать его для чего угодно, в принципе.Если есть слои, которые делают то, что вы хотите, используйте их, в противном случае добавьте новые или используйте EvalLayer
.