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 = ...
简短的答案为否,当shuffle=True
的迭代次数在两次迭代之间不稳定时。每次在加载程序上进行迭代时,内部DataLoader
都会创建一个新的随机顺序。
我实际上接受了乔达格的评论中的答案: