Deep learning 在使用Pytork将培训数据集拆分为CIFAR10的培训和验证集后,如何增加数据?

Deep learning 在使用Pytork将培训数据集拆分为CIFAR10的培训和验证集后,如何增加数据?,deep-learning,conv-neural-network,pytorch,torch,data-augmentation,Deep Learning,Conv Neural Network,Pytorch,Torch,Data Augmentation,在PyTorch中对CIFAR10进行分类时,通常有50000个训练样本和10000个测试样本。但是,如果我需要创建一个验证集,我可以通过将训练集拆分为40000个训练样本和10000个验证样本来完成。我使用了以下代码 train_transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))]) test_transform = transforms.

在PyTorch中对CIFAR10进行分类时,通常有50000个训练样本和10000个测试样本。但是,如果我需要创建一个验证集,我可以通过将训练集拆分为40000个训练样本和10000个验证样本来完成。我使用了以下代码

train_transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))])
test_transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))])

cifar_train_L = CIFAR10('./data',download=True, train= True, transform = train_transform)
cifar_test = CIFAR10('./data',download=True, train = False, transform= test_transform) 

train_size = int(0.8*len(cifar_training))
val_size = len(cifar_training) - train_size
cifar_train, cifar_val = torch.utils.data.random_split(cifar_train_L,[train_size,val_size])

train_dataloader = torch.utils.data.DataLoader(cifar_train, batch_size= BATCH_SIZE, shuffle= True, num_workers=2)
test_dataloader = torch.utils.data.DataLoader(cifar_test,batch_size= BATCH_SIZE, shuffle= True, num_workers= 2)
val_dataloader = torch.utils.data.DataLoader(cifar_val,batch_size= BATCH_SIZE, shuffle= True, num_workers= 2)
通常,在PyTorch中扩充数据时,在 transforms.Compose函数(即transforms.RandomHorizontalFlip())。但是,如果我在分割训练集和验证集之前使用这些增强过程,那么增强的数据也将包含在验证集中。有什么办法可以解决这个问题吗

简而言之,我想手动拆分 将数据集训练成训练集和验证集 在新的训练集中使用数据扩充技术


您可以手动覆盖数据集的
转换

cifar\u train,cifar\u val=torch.utils.data.random\u split(cifar\u train\L,[train\u size,val\u size])
cifar\u val.transforms=测试\u转换