据我了解,RandomHorizontalFlip等替换图像,而不是向数据集添加新图像。如何通过使用PyTorch向数据集中添加增强图像来增加数据集大小?
我浏览了发布的链接,但未找到解决方案。我想通过添加翻转/旋转的图像来增加数据大小-但该帖子介绍了图像的就地处理。
谢谢。
答案 0 :(得分:0)
您为什么想要它?一般而言,增加数据集上的历元数就足够了,并且您的模型将至少看到一次每个图像的原始和增强版本(假设历时数相对较高)。
说明:
例如,如果您的扩增有50%的机会被应用,则在100个时期之后,您将获得〜50个原始图像的样本和〜50个扩增图像的样本。因此,增加数据集大小等效于添加历元,但(可能)在内存方面效率较低(需要将图像存储在内存中以具有高性能)。
答案 1 :(得分:0)
它需要一些解释。
transforms.Compose
创建一个位于 <class 'torchvision.transforms.transforms.Compose'>
(您可以通过使用 type()
例如
train_tfm = transforms.Compose([transforms.Resize((128, 128)),transforms.ToTensor(),])
print(type(train_tfm))
所以它不是数据集,因此不能直接协调
在代码中搜索,看看携带增广指令的变量是如何进行的。
应该有某种数据读取器,它可能属于 <class 'torchvision.datasets.folder.DatasetFolder'>
那么就可以使用了:
concat_dataset = ConcatDataset([train_set_1, train_set_2])