Я использую набор данных, не относящийся к torchvision, и извлек его с помощью метода ImageFolder. Я пытаюсь разбить набор данных на набор проверки 20% и набор обучения 80%. Я могу найти только этот метод (random_split) из библиотеки PyTorch, который позволяет разделить набор данных. Однако каждый раз это происходит случайно. Мне интересно, есть ли способ разделить набор данных с указанным c количеством в библиотеке PyTorch?
Это мой код для извлечения набора данных и его случайного разделения.
transformations = transforms.Compose([
transforms.Resize(255),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
TrafficSignSet = datasets.ImageFolder(root='./train/', transform=transformations)
####### split data
train_size = int(0.8 * len(TrafficSignSet))
test_size = len(TrafficSignSet) - train_size
train_dataset_split, test_dataset_split = torch.utils.data.random_split(TrafficSignSet, [train_size, test_size])
#######put into a Dataloader
train_dataset = torch.utils.data.DataLoader(train_dataset_split, batch_size=32, shuffle=True)
test_dataset = torch.utils.data.DataLoader(test_dataset_split, batch_size=32, shuffle=True)