gpt4 book ai didi

pytorch - Pytorch DataLoader迭代顺序是否稳定?

转载 作者:行者123 更新时间:2023-12-05 01:38:50 32 4
gpt4 key购买 nike

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)

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

最佳答案

简短的回答是否定的,当 shuffle=TrueDataLoader 的迭代顺序在迭代之间不稳定。每次迭代加载程序时,内部 RandomSampler 都会创建一个新的随机顺序。

获得稳定的混排DataLoader 的一种方法是使用一组混排的索引创建子集 数据集。

shuffled_dataset = torch.utils.data.Subset(my_dataset, torch.randperm(len(my_dataset)).tolist())
dataloader = DataLoader(shuffled_dataset, batch_size=4, num_workers=4, shuffled=False)

关于pytorch - Pytorch DataLoader迭代顺序是否稳定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59314174/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com