torch.Tensor.expand
-
Tensor.expand(*size) → Tensor -
Возвращает новое представление тензора
self, в котором размеры измерений длины 1 увеличены до большего значения.Передача -1 в качестве размера измерения означает, что его размер не изменится.
Тензор также можно расширить до большего числа измерений; новые измерения будут добавлены в начало. Для новых измерений нельзя задать размер -1.
Расширение тензора не выделяет новую память, а лишь создает новое представление существующего тензора, в котором измерение длины 1 расширяется до большего размера путем установки
strideв 0. Любое измерение длины 1 можно расширить до произвольного значения без выделения новой памяти.Примечание
Операции с расширенным представлением все же могут выделять память, если для них требуется материализовать расширенные значения. Например, изменение типа данных после
expand()может выделить память для всей расширенной формы.- Параметры:
-
*size (torch.Size или int...) – требуемый размер расширенного тензора
Предупреждение
Несколько элементов расширенного тензора могут ссылаться на одну область памяти. В результате операции на месте (особенно векторизованные) могут приводить к некорректному поведению. Если вам нужно записывать данные в тензоры, сначала создайте их копии с помощью clone.
Пример:
>>> x = torch.tensor([[1], [2], [3]]) >>> x.size() torch.Size([3, 1]) >>> x.expand(3, 4) tensor([[ 1, 1, 1, 1], [ 2, 2, 2, 2], [ 3, 3, 3, 3]]) >>> x.expand(-1, 4) # -1 means not changing the size of that dimension tensor([[ 1, 1, 1, 1], [ 2, 2, 2, 2], [ 3, 3, 3, 3]])
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.Tensor.expand.html