【发布时间】:2020-04-09 06:17:04
【问题描述】:
我做了一个实验,但没有得到我期望的结果。
对于第一部分,我使用的是
trainloader = torch.utils.data.DataLoader(trainset, batch_size=128,
shuffle=False, num_workers=0)
在训练我的模型之前,我将trainloader.dataset.targets 保存到变量a,并将trainloader.dataset.data 保存到变量b。然后,我使用trainloader 训练模型。
训练完成后,我将trainloader.dataset.targets保存到变量c,将trainloader.dataset.data保存到变量d。最后,我检查了a == c 和b == d,它们都给出了True,这是意料之中的,因为DataLoader 的shuffle 参数是False。
对于第二部分,我正在使用
trainloader = torch.utils.data.DataLoader(trainset, batch_size=128,
shuffle=True, num_workers=0)
在训练我的模型之前,我将trainloader.dataset.targets 保存到变量e,并将trainloader.dataset.data 保存到变量f。然后,我使用trainloader 训练模型。训练完成后,我将trainloader.dataset.targets保存到变量g,将trainloader.dataset.data保存到变量h。我希望e == g 和f == h 都是False,因为shuffle=True,但他们又给了True。我在DataLoader 类的定义中遗漏了什么?
【问题讨论】:
标签: python neural-network pytorch shuffle training-data