如何调整数据加载器并制作新的数据加载器?

时间:2019-12-19 15:02:30

标签: numpy pytorch dataloader

假设我有一个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

1 个答案:

答案 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}}和相应的索引。