[英]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.