我目前正在使用Pytorch学习深度学习,并使用Cifar 10数据集做一些实验。它有10个类,每个类有5000个测试图像。我只想使用狗和鹿类数据的60%和其他类的100%数据。
根据我的理解,我需要使用自定义数据集。但是我真的不能弄明白。任何想法,样本代码或链接,如果你可以分享将对我有帮助。
发布于 2019-12-16 16:30:27
您可以像这样使用Subset:
from torchvision.datasets import CIFAR10
from torch.utils.data import Subset
ds = CIFAR10('~/.torch/data/', train=True, download=True)
dog_indices, deer_indices, other_indices = [], [], []
dog_idx, deer_idx = ds.class_to_idx['dog'], ds.class_to_idx['deer']
for i in range(len(ds)):
current_class = ds[i][1]
if current_class == dog_idx:
dog_indices.append(i)
elif current_class == deer_idx:
deer_indices.append(i)
else:
other_indices.append(i)
dog_indices = dog_indices[:int(0.6 * len(dog_indices))]
deer_indices = deer_indices[:int(0.6 * len(deer_indices))]
new_dataset = Subset(ds, dog_indices+deer_indices+other_indices)https://stackoverflow.com/questions/59351910
复制相似问题