Pytorch DataLoader迭代顺序是否稳定?

问题描述 投票:1回答:2

Pytorch Dataloader的迭代顺序是否保证相同(在温和条件下?)>

例如:

dataloader = DataLoader(my_dataset, batch_size=4,
                        shuffle=True, num_workers=4)
print("run 1")
for batch in dataloader:
  print(batch["index"])

print("run 2")
for batch in dataloader:
  print(batch["index"])

到目前为止,我已经尝试对其进行测试,并且它似乎不是固定的,两次运行的顺序相同。有没有办法使订单相同?谢谢

编辑:我也尝试过做

unlabeled_sampler = data.sampler.SubsetRandomSampler(unlabeled_indices)
unlabeled_dataloader = data.DataLoader(train_dataset, 
                sampler=unlabeled_sampler, batch_size=args.batch_size, drop_last=False)

,然后两次遍历数据加载器,但结果是相同的不确定性。

Pytorch Dataloader的迭代顺序是否保证是相同的(在温和条件下?例如:dataloader = DataLoader(my_dataset,batch_size = 4,shuffle = ...

pytorch iterable deterministic dataloader
2个回答
1
投票

简短的答案为否,当shuffle=True的迭代次数在两次迭代之间不稳定时。每次在加载程序上进行迭代时,内部DataLoader都会创建一个新的随机顺序。


0
投票

我实际上接受了乔达格的评论中的答案:

© www.soinside.com 2019 - 2024. All rights reserved.