I have a “torch.utils.data.DataLoader”. I want to rearrange the order of the samples. Is it possible?
Advertisement
Answer
Yes, you can use torch.utils.data.Subset
and specify the indices.
JavaScript
x
21
21
1
import numpy as np
2
import torch
3
from torch.utils.data import DataLoader, Subset, TensorDataset
4
5
6
data = np.arange(5) ** 2
7
dataset = TensorDataset(torch.tensor(data))
8
9
# Subset with entire Dataset in rearranged order
10
dataset_ordered = Subset(dataset, indices=[2, 1, 3, 4, 0])
11
12
for x in DataLoader(dataset_ordered):
13
print(x)
14
15
# [tensor([4])]
16
# [tensor([1])]
17
# [tensor([9])]
18
# [tensor([16])]
19
# [tensor([0])]
20
21