我希望使用torchvision.datasets.FashionMNIST(data_dir,train=True、download=True加载时尚-mnist(或任何其他数据集),然后应用一些图像转换,例如裁剪或添加噪声等,最后将转换后的数据添加到原始数据集中。我找到的唯一方法是torchvision.transform,但它会更改原始数据集,并且不会增加数据集。如何增加数据集?
发布于 2022-02-02 10:35:45
正如@Ivan在注释中已经指出的那样,在访问图像时,PyTorch总是加载其原始数据集版本。然后,transform在线应用您对数据的选择转换。
通常,在训练神经模型时,在不触及原始数据集的情况下设置一个transform来增加数据是常见的做法。
尽管如此,如果需要将增强的数据集与原始数据集混合使用,例如,可以使用torch.utils.data.ConcatDataset堆栈两个数据集,如下所示:
dset1 = torchvision.datasets.FashionMNIST(data_dir, train=True, download=True)
dset2 = torchvision.datasets.FashionMNIST(data_dir, train=True, transform=my_transform)
dset = torch.utils.data.ConcatDataset([dset1, dset2])看看此页,了解更多的替代方案。
最后,如果需要,还可以保存数据集供将来使用(从而冻结应用于数据的随机转换):
for idx, (img, target) in enumerate(dset):
torch.save(img, f"mydset/{fname}_img_{idx}.pt")
torch.save(target, f"mydset/{fname}_tgt_{idx}.pt")https://stackoverflow.com/questions/70953156
复制相似问题