如何使用Pytorch将增强图像添加到原始数据集中?

时间:2019-03-03 14:12:41

标签: python pytorch

据我了解,RandomHorizo​​ntalFlip等替换图像,而不是向数据集添加新图像。如何通过使用PyTorch向数据集中添加增强图像来增加数据集大小?

我浏览了发布的链接,但未找到解决方案。我想通过添加翻转/旋转的图像来增加数据大小-但该帖子介绍了图像的就地处理。

谢谢。

2 个答案:

答案 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])