Есть ли способ разделить набор данных на обучение и тестирование на основе имен файлов.У меня есть папка, содержащая две папки: вход и выход.Входная папка содержит изображения, а выходные - метки для этого изображения.Имена файлов во входной папке выглядят примерно так: input01_train.png
и input01_test.png
, как показано ниже.
Dataset
/ \
Input Output
| |
input01_train.png output01_train.png
. .
. .
input01_test.png output01_test.png
У меня есть код, который разделяет только набор данных на входы и метки, а не тест и тренировка.
class CancerDataset(Dataset):
def __init__(self, dataset_folder):#,label_folder):
self.dataset_folder = torchvision.datasets.ImageFolder(dataset_folder ,transform = transforms.Compose([transforms.Resize(512),transforms.ToTensor()]))
self.label_folder = torchvision.datasets.ImageFolder(dataset_folder ,transform = transforms.Compose([transforms.Resize(512),transforms.ToTensor()]))
def __getitem__(self,index):
img = self.dataset_folder[index]
label = self.label_folder[index]
return img,label
def __len__(self):
return len(self.dataset_folder)
trainset = CancerDataset(dataset_folder = '/content/drive/My Drive/cancer_data/')
trainsetloader = DataLoader(trainset,batch_size = 1, shuffle = True,num_workers = 0,pin_memory = True)
Я бы хотел разделить поезд и набор тестов по их именам, если это возможно.