Pytorch中shuffle=True的作用

本文介绍 PyTorch 中 DataLoader 的使用方法,重点解释了 shuffle 参数的作用。通过对比 shuffle=True 和 shuffle=False 下的数据加载情况,展示了如何在训练模型时随机抽取数据批次。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shuffle=True用于打乱数据集,每次都会以不同的顺序返回。

from torch.utils.data import Dataset, DataLoader


class DataSet(Dataset):
    def __init__(self, n):
        self.n = n
        self.data = [i for i in range(n)]

    def __len__(self):
        return self.n

    def __getitem__(self, idx):
        return self.data[idx]


data_set = DataSet(32)
data_loader = DataLoader(data_set, batch_size=8, shuffle=True)
for num in data_loader:
    print(num, end='\t')
print()
for num in data_loader:
    print(num, end='\t')
print()
for num in data_loader:
    print(num, end='\t')

实验结果:

tensor([ 7, 23, 19,  4, 22, 26, 21, 31])	tensor([27, 14, 13, 12,  2, 24,  5, 10])	tensor([ 0, 15, 16, 30, 25,  8,  6, 29])	tensor([11,  3,  1, 18,  9, 20, 17, 28])	
tensor([10, 11, 22, 28, 24, 19, 31,  8])	tensor([15,  2,  9,  1, 20, 14, 23, 16])	tensor([ 5, 25,  4,  6, 21, 30, 18, 27])	tensor([ 3, 13, 17, 12, 29,  0,  7, 26])	
tensor([ 1,  2, 13, 20, 11, 19,  9, 22])	tensor([ 0, 14, 25, 24, 27, 31, 12, 28])	tensor([10,  4, 23, 15, 21, 30,  6, 16])	tensor([ 7, 17,  8, 26,  3, 29, 18,  5])

如果是shuffle=False的话,实验结果

tensor([0, 1, 2, 3, 4, 5, 6, 7])	tensor([ 8,  9, 10, 11, 12, 13, 14, 15])	tensor([16, 17, 18, 19, 20, 21, 22, 23])	tensor([24, 25, 26, 27, 28, 29, 30, 31])	
tensor([0, 1, 2, 3, 4, 5, 6, 7])	tensor([ 8,  9, 10, 11, 12, 13, 14, 15])	tensor([16, 17, 18, 19, 20, 21, 22, 23])	tensor([24, 25, 26, 27, 28, 29, 30, 31])	
tensor([0, 1, 2, 3, 4, 5, 6, 7])	tensor([ 8,  9, 10, 11, 12, 13, 14, 15])	tensor([16, 17, 18, 19, 20, 21, 22, 23])	tensor([24, 25, 26, 27, 28, 29, 30, 31])
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值