Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pytorch中的图像增强_Pytorch - Fatal编程技术网

Pytorch中的图像增强

Pytorch中的图像增强,pytorch,Pytorch,我喜欢交替地增强图像。 我有如下pytorch转换代码 import torchvision.transforms as tt from torchvision.datasets import ImageFolder #Data transform (normalization & data augmentation) stats = ((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)) train_tfms = tt.Compose(

我喜欢交替地增强图像。 我有如下pytorch转换代码

import torchvision.transforms as tt
from torchvision.datasets import ImageFolder
#Data transform (normalization & data augmentation)
stats = ((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))
train_tfms = tt.Compose([tt.RandomCrop(32, padding = 4, padding_mode = 'reflect'),
                         tt.RandomHorizontalFlip(),
                         tt.RandomAffine(degrees=(10, 30),
                                         translate=(0.1, 0.3),
                                         scale=(0.7, 1.3),
                                         shear=0.1, 
                                         resample=Image.BICUBIC)
                         tt.ToTensor(),
                         tt.Normalize(*stats)])
当我按如下方式创建数据集并进行训练时,所有图像都将得到增强

train_ds = ImageFolder('content/train', train_tfms)
但我要轮流。第一个图像,只需训练为原始图像。但下一幅图像被放大了

train_ds = ImageFolder('content/train', train_tfms)

如何才能做到这一点?

从一个数据集,您可以创建两个数据集,一个有扩展,另一个没有,然后将它们连接起来。由于我们使用的是子数据集pytorch类,它将为我们处理这个问题,所以我们将保持这个顺序

train\u ds\u no\u aug=ImageFolder('content/train')
train\u ds\u aug=ImageFolder('content/train',train\tfms)
#检查aug_idx和no_aug_idx是否重叠
8月idx=火炬号(1列,8月2号列车)
no_-Augu_-idx=火炬(0,len(列车编号),2)
train\u ds\u no\u aug=torch.utils.data.Subset(train\u ds\u no\u aug,no\u aug\u idx)
train\u ds\u aug=torch.utils.data.Subset(train\u ds\u aug,aug\u idx)
train\u ds=torch.utils.data.ChainDataset([train\u ds\u no\u aug,train\u ds\u aug])
#完成:=

我有问题。我不能在
train\u dl=DataLoader中设置shuffle=True(train\u ds,batch\u size,shuffle=False,num\u workers=8,pin\u memory=True)
那么当我进行训练时,我会出现错误,因为
AssertionError:ChainDataset只支持IterableDataset