Растяжение оси длины один в PyTorch
Ось длины 1 можно удлинить
через метод expand: при чтении
значение повторяется, но в памяти
новые копии не создаются. Так
один короткий ряд можно показать
как несколько одинаковых рядов.
Создадим таблицу с одним рядом и растянем её до трёх рядов:
import torch
row = torch.tensor([[1, 2, 3]])
wide = row.expand(3, 3)
print(wide.shape) # выведет torch.Size([3, 3])
print(wide)
Форма результата задаётся явно:
на месте единицы можно указать
любую нужную длину. Ось, которая
уже длиннее одного, менять нельзя -
только совпадающий размер или
1 на входе.
import torch
column = torch.tensor([[1], [2]])
panel = column.expand(2, 4)
print(panel)
Создайте таблицу с одним рядом
[5, 6, 7] и выведите форму
после растяжения до четырёх
одинаковых рядов.
Создайте столбец из чисел
10 и 20 и выведите
таблицу из двух рядов и трёх
столбцов, где каждый столбец
повторяет исходный столбец.
Создайте таблицу 1 на 2
с числами 0 и 1,
растяните её до формы 3
на 2 и выведите элемент
в последней строке первого столбца.