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