假设我有一个cifar10的数据加载器
如果我想从数据加载器中删除一些值并制作一个新的数据加载器
我该怎么办?
def load_data_cifar10(batch_size=128,test=False):
if not test:
train_dset = torchvision.datasets.CIFAR10(root='/mnt/3CE35B99003D727B/input/pytorch/data', train=True,
download=True, transform=transform)
else:
train_dset = torchvision.datasets.CIFAR10(root='/mnt/3CE35B99003D727B/input/pytorch/data', train=False,
download=True, transform=transform)
train_loader = torch.utils.data.DataLoader(train_dset, batch_size=batch_size, shuffle=True)
print("LOAD DATA, %d" % (len(train_loader)))
return train_loader
答案 0 :(得分:2)
您可以使用Subset
数据集。这将另一个数据集作为输入以及索引列表来构建新的数据集。假设您想要前1000个条目,那么您可以
{
//..
resolve: {
alias: {
'/src/images': isDev ? '/src/images' : process.env.IMAGE_CDN + '/images'
}
}
}
您还可以使用ConcatDataset
数据集或subset_train_dset = torch.utils.data.Subset(train_dset, range(1000))
和ConcatDataset
的组合构造由多个数据集组成的数据集,以构建自己喜欢的东西
Subset
在您的情况下,您可能需要研究实现细节以确定要保留的索引,或者可以编写一些代码以首先遍历原始数据集并保存要保留的所有索引,然后定义一个{ {1}}和相应的索引。