Вид без копии данных в PyTorch
Метод view задаёт новую форму
тому же тензору: число элементов
не меняется, данные в памяти те же.
Это вид без копии - меняется
только способ разложить значения
по осям.
Таблицу из двух рядов по три числа
можно оформить как три ряда по два.
Создадим тензор и применим
view:
import torch
grid = torch.tensor([[1, 2, 3], [4, 5, 6]])
ordered = grid.view(3, 2)
print(ordered)
Ту же последовательность можно показать одним длинным рядом:
import torch
grid = torch.tensor([[1, 2, 3], [4, 5, 6]])
flat = grid.view(6)
print(flat) # выведет tensor([1, 2, 3, 4, 5, 6])
Вид ссылается на те же ячейки, что и исходный тензор. Запись через вид меняет и исходные данные:
import torch
base = torch.tensor([10, 20, 30, 40, 50, 60])
table = base.view(2, 3)
table[1, 0] = 99
print(base) # выведет tensor([10, 20, 30, 99, 50, 60])
Соберите таблицу из рядов
[1, 2, 3] и [4, 5, 6]
и выведите те же числа как три
ряда по два значения.
Соберите ряд из чисел
2, 4, 6
и 8 и выведите его
как таблицу из двух рядов
по два числа.
Создайте ряд из шести последовательных
целых, начиная с 0, оформите
его как таблицу 2 на 3,
измените число в последней ячейке
на 99 и выведите исходный
ряд.