Подмножество по номерам в PyTorch
Чтобы оставить только часть примеров
полного набора, служит класс
Subset из модуля
torch.utils.data. Ему
передают исходный набор и список
номеров, которые нужно сохранить.
Новый объект ведёт себя как обычный
набор: к нему обращаются по номеру
и спрашивают длину. Создадим
набор из четырёх чисел, возьмём
номера 0 и 2
и выведем длину и первый элемент:
import torch
from torch.utils.data import TensorDataset, Subset
data = TensorDataset(torch.tensor([1., 2., 3., 4.]))
indices = [0, 2]
part = Subset(data, indices)
print(len(part)) # выведет 2
print(part[0]) # выведет (tensor(1.),)
Создайте набор из чисел 10,
20, 30 и 40
и список номеров 1
и 3. Соберите по ним
узкий набор и выведите его длину.
Для набора из пяти целых от
0 до 4 оставьте
только номера 0, 2
и 4. Выведите значение
первого примера в отобранной части.
Создайте пару тензоров длины
3: метки [0, 1, 0]
и признаки [1., 2., 3.]
в общем наборе. По номерам
[2, 0] получите срез
и выведите метку второго
примера в этом срезе.