【问题标题】:Pytorch Dataloader shuffle with multiple dataset具有多个数据集的 Pytorch Dataloader shuffle
【发布时间】:2020-04-04 08:50:02
【问题描述】:

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

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

例如:

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

数据加载器2:label = [5 , 4, 15, 16]

【问题讨论】:

    标签: python pytorch dataloader


    【解决方案1】:

    编辑: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
    

    【讨论】:

      猜你喜欢
      • 2021-06-01
      • 2020-08-26
      • 2019-04-27
      • 2020-10-03
      • 2018-12-22
      • 2019-09-07
      • 2022-01-18
      • 2020-07-05
      • 2019-09-19
      相关资源
      最近更新 更多