BucketIterator.splits выдает итераторы различной длины последовательности

Я использовал BucketIterator.splits создать итераторы для обучения и проверки набора. Я получил два итератора с очень разным распределением длин последовательностей. Я ожидаю, что расколы будут более симметричными. Я что-то пропустил?

Вот короткая тетрадь

Импорт и случайное разделение набора данных

TEXT = Field(sequential=True, lower=True)
dataset = TabularDataset(....with tree text fields BODY, TITLE)
TEXT.build_vocab(dataset)    
trn, vld = dataset.split(split_ratio=0.5)

Создать итераторы

trn_iter, vld_iter = BucketIterator.splits(
    (trn, vld), batch_sizes=(64, 64),
    sort_key=lambda x: len(x.BODY) + len(x.TITLE),
    repeat=False
)

Длина последовательности пакетов итераторов очень различна

vld_iter_seqlen = np.array([x.BODY.size(0) + x.TITLE.size(0) for x in vld_iter])
trn_iter_seqlen = np.array([x.BODY.size(0) + x.TITLE.size(0) for x in trn_iter])

0 ответов

Другие вопросы по тегам