Я хочу использовать примеры в тестовом наборе набора данных анализа настроений IMDB для обучения, так как я построил свой собственный тест, с которым я буду сравнивать производительность различных моделей (моя аттестат зрелости)
Итак, после попытки я получил добавляющуюся работу, а также смог разделить ее, так что у меня также есть набор для проверки. Код следующий:
from torchtext import datasets
train_data, test_data = datasets.IMDB.splits(TEXT, LABEL)
import random
train_data, valid_data = train_data.split(random_state = random.seed(SEED))
from torch.utils.data import ConcatDataset
data_list = list()
data_list.append(train_data)
data_list.append(test_data)
train_data = ConcatDataset(data_list)
print(f'Number of validation examples: {len(valid_data)}')
print(f'Number of training examples: {len(train_data)}')
И я получаю следующее разделение (что и является моей целью):
Number of validation examples: 7500
Number of training examples: 42500
Теперь, когда я хочу создать словарь с помощью следующего кода, Я получаю эту ошибку:
MAX_VOCAB_SIZE = 25_000
LABEL.build_vocab(train_data)
TEXT.build_vocab(train_data, max_size = MAX_VOCAB_SIZE)
~\.conda\envs\matura-ml\lib\collections\__init__.py in update(*args, **kwds)
654 else:
--> 655 _count_elements(self, iterable)
656 if kwds:
TypeError: 'Example' object is not iterable
During handling of the above exception, another exception occurred:
TypeError Traceback (most recent call last)
in
1 MAX_VOCAB_SIZE = 25_000
2
----> 3 TEXT.build_vocab(train_data, max_size = MAX_VOCAB_SIZE)
4 LABEL.build_vocab(train_data)
~\.conda\envs\matura-ml\lib\site-packages\torchtext\data\field.py in build_vocab(self, *args, **kwargs)
299 counter.update(x)
300 except TypeError:
--> 301 counter.update(chain.from_iterable(x))
302 specials = list(OrderedDict.fromkeys(
303 tok for tok in [self.unk_token, self.pad_token, self.init_token,
TypeError: 'Example' object is not iterable
Как правильно объединить разделение поездов и тестов?