簡體   English   中英

數據加載器上的 pytorch 子集減少數據數量

[英]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實例的包裝器。 您需要提供要保留在構造數據集中的生成器或索引列表

  1. 這是一個最小的設置示例:

     >>> dataset_train = data.TensorDataset(torch.arange(100))
  2. 通過包裝dataset_train構造子集:

     >>> subset = data.Subset(ds, range(10)) # will select the first 10 of dataset_train
  3. 最后構建你的數據加載器:

     >>> 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM