[英]pytorch subset on dataloader decrease number of data
我正在使用 random_split()
dataset_train, dataset_valid = random_split(dataset, [int(len(dataset) * 0.8), int(len(dataset) * 0.2+1)])
len(dataset_train) 是 1026 并且 len(dataset_valid) 是 257 但是将这两个变量放入 dataloader 减少数据数量
loader_train = DataLoader(dataset_train, batch_size=batch_size, shuffle=True, num_workers=0)
loader_val = DataLoader(dataset_valid, batch_size=batch_size, shuffle=True, num_workers=0)
print (len(loader_train))
print (len(loader_val))
output 是:
257, 65
我不知道为什么要减小数据集的大小。 请任何帮助。 谢谢。
您可以使用data.Subset
作为data.Dataset
实例的包装器。 您需要提供要保留在构造数据集中的生成器或索引列表
这是一个最小的设置示例:
>>> dataset_train = data.TensorDataset(torch.arange(100))
通过包装dataset_train
构造子集:
>>> subset = data.Subset(ds, range(10)) # will select the first 10 of dataset_train
最后构建你的数据加载器:
>>> loader_train = data.DataLoader(subset, batch_size=2)
作为一个例子,这里是loader_train
:
>>> for x in dl:
... print(x)
[tensor([0, 1])]
[tensor([2, 3])]
[tensor([4, 5])]
[tensor([6, 7])]
[tensor([8, 9])]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.