torchvision软件包可轻松访问常用数据集。 You would use them like this:
trainset = torchvision.datasets.CIFAR10(root='./data', train=True,
download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
shuffle=True, num_workers=2)
testset = torchvision.datasets.CIFAR10(root='./data', train=False,
download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=4,
shuffle=False, num_workers=2)
显然,您只能在train=True
和train=False
之间切换。 docs解释:
train(布尔型,可选)–如果为True,则从training.pt创建数据集, 否则来自test.pt。
但是,这与三分法相违背。为了进行认真的工作,我需要另一个带有验证集的DataLoader
。另外,最好自己指定分割比例。他们没有说保留多少数据集用于测试,也许我想更改它。
我认为这是一个有意识的设计决定。每个使用这些数据集的人都应该使用相同的测试集。这使得结果具有可比性。但是我仍然需要从trainloader
中获取验证集。是否可以将DataLoader
分成两个单独的数据流?
答案 0 :(得分:2)
与此同时,我偶然发现了方法random_split
。因此,您没有拆分DataLoader
,而是拆分了Dataset
:
torch.utils.data.random_split(dataset, lengths)