Срез в PyTorch
Чтобы взять несколько ячеек подряд, используют срез: в квадратных скобках пишут старт, двоеточие и стоп. Старт входит в результат, стоп не входит.
Создадим ряд из четырёх чисел и возьмём первые две ячейки:
import torch
temps = torch.tensor([10, 20, 30, 40])
part = temps[0:2]
print(part) # выведет tensor([10, 20])
Если старт 1, а стоп 3,
в результат попадут две средние ячейки,
а ячейка с индексом 3 уже нет:
import torch
temps = torch.tensor([10, 20, 30, 40])
middle = temps[1:3]
print(middle) # выведет tensor([20, 30])
Старт можно опустить, тогда фрагмент начинается с первой ячейки. Стоп можно опустить, тогда фрагмент идёт до конца ряда. Создадим новый ряд и выведем первые три ячейки и фрагмент со второй до конца:
import torch
scores = torch.tensor([4, 5, 3, 2, 1])
print(scores[:3]) # выведет tensor([4, 5, 3])
print(scores[1:]) # выведет tensor([5, 3, 2, 1])
Соберите ряд из чисел 10,
20, 30 и 40 и
выведите его первые три ячейки
как отдельный тензор.
Соберите ряд из шести целых чисел и выведите фрагмент из трёх ячеек, начиная со второй ячейки ряда.
Соберите ряд из пяти чисел и выведите все ячейки, начиная со второй до конца ряда.