Датасет из двух тензоров в PyTorch
Чтобы хранить признаки и цели в одном
объекте, используют класс
TensorDataset из
torch.utils.data. В него
передают два тензора: число строк
по первой оси должно совпадать.
Создадим таблицу из трёх строк по
два признака, ряд из трёх меток
и соберём набор. Выведем его длину
и одну пару по индексу 0:
import torch
from torch.utils.data import TensorDataset
features = torch.tensor([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
targets = torch.tensor([0, 1, 0])
ds = TensorDataset(features, targets)
print(len(ds)) # выведет 3
pair = ds[0]
print(pair[0], pair[1]) # выведет tensor([1., 2.]) tensor(0)
Длина набора равна числу строк в таблице признаков. Обращение по индексу возвращает два тензора: строку признаков и одну метку для этой строки.
Соберите таблицу из четырёх строк
[[0.0, 1.0], [2.0, 3.0], [4.0, 5.0], [6.0, 7.0]]
и ряд меток [1, 0, 1, 0].
Объедините их в один набор и
выведите, сколько в нём элементов.
Для таблицы из двух строк
[[1.0, 0.0], [0.0, 1.0]]
и ряда [2, 3] получите
набор пар. Выведите метку,
соответствующую второй строке
таблицы.
Создайте таблицу из пяти строк
по одному числу - от 0.0
до 4.0 - и ряд меток
[0, 0, 1, 1, 1]. Выведите
признаки и метку для элемента
с индексом 3.