Pytorch Dataloader随机播放多个数据集

时间:2020-04-04 08:50:02

标签: python pytorch dataloader

我正在尝试使用多个数据集创建自定义Dataloader

我的问题是,如果我在(shuffle = True)选项中使用Dataloader,是否可以将多个Dataloader的顺序重排?

例如:

dataloader1:label = [5 , 4, 15, 16]

dataloader2:label = [5 , 4, 15, 16]

1 个答案:

答案 0 :(得分:0)

编辑:Pytorch的数据加载器已经为此实现了解决方案。

请参见此处:https://pytorch.org/docs/stable/data.html#torch.utils.data.Sampler,您可以自己指定采样器。因此,您可以创建一个生成器并将其提供给所有数据加载器。

旧的(又有点笨拙)答案:

如果保持顺序确实很重要,则与其创建自定义数据加载器,不如创建自定义数据集。

请注意,只有在所有数据集具有相同数量的示例时才有可能。还是不使用较大数据集的部分数据。

这些行中的内容应该起作用:

class ManyDatasetsInOne(Dataset):
    def __init__(self, **parameters):
        self.dataset1 = dataset1(**parameters_1)
        self.dataset2 = dataset2(**parameters_2)

    def __len__(self):
        return len(self.dataset1)

    def __getitem__(self, index):

        data1 = load_item(idx, self.dataset1)
        data2 = load_item(idx, self.dataset1)

        return data1, data2
相关问题