Spec-Zone.ru › PyTorch 2.14

torch.empty_permuted

torch.empty_permuted(size, physical_layout, *, dtype=None, layout=None, device=None, requires_grad=False, pin_memory=False) → Tensor

Создаёт неинициализированный, неперекрывающийся и плотный тензор с указанным size, где physical_layout задаёт физическое расположение измерений в памяти (каждое логическое измерение перечислено от самого внешнего к самому внутреннему). physical_layout — это обобщение обозначений NCHW/NHWC: если каждому измерению присвоить число в соответствии с порядком его следования в размере (N=0, C=1, H=2, W=3), то NCHW — это (0, 1, 2, 3), а NHWC — (0, 2, 3, 1). Иными словами, шаги выходного тензора t таковы, что t.stride(physical_layout[i]) == contiguous_strides[i] (обратите внимание: эта функция не эквивалентна torch.empty(size).permute(physical_layout)).

В отличие от torch.empty_strided(), эта функция гарантированно создаёт плотный тензор без перекрытий. Если возможно, используйте эту функцию вместо torch.empty_strided() или ручного использования torch.as_strided().

Примечание

Если torch.use_deterministic_algorithms() и torch.utils.deterministic.fill_uninitialized_memory одновременно установлены в True, выходной тензор инициализируется, чтобы предотвратить возможное недетерминированное поведение при использовании данных в качестве входных данных для операции. Тензоры с плавающей точкой и комплексные тензоры заполняются значением NaN, а целочисленные тензоры — максимальным значением.

Параметры:
  • size (tuple of int) – форма выходного тензора
  • physical_layout (tuple of int) – порядок физического расположения измерений в памяти
Именованные аргументы:
  • dtype (torch.dtype, необязательно) – требуемый тип данных возвращаемого тензора. По умолчанию: если None, используется глобальное значение по умолчанию (см. torch.set_default_dtype()).
  • layout (torch.layout, необязательно) – требуемый формат возвращаемого тензора. По умолчанию: torch.strided.
  • device (torch.device, необязательно) – требуемое устройство возвращаемого тензора. По умолчанию: если None, используется текущее устройство для типа тензора по умолчанию (см. torch.set_default_device()). device будет CPU для типов тензоров CPU и текущим устройством CUDA для типов тензоров CUDA.
  • requires_grad (bool, необязательно) – должен ли autograd записывать операции над возвращаемым тензором. По умолчанию: False.
  • pin_memory (bool, необязательно) – если задано, возвращаемый тензор будет размещён в закреплённой памяти. Работает только для тензоров CPU. По умолчанию: False.

Примеры

>>> torch.empty((2, 3, 5, 7)).stride()
(105, 35, 7, 1)
>>> torch.empty_permuted((2, 3, 5, 7), (0, 1, 2, 3)).stride()
(105, 35, 7, 1)
>>> torch.empty((2, 3, 5, 7), memory_format=torch.channels_last).stride()
(105, 1, 21, 3)
>>> torch.empty_permuted((2, 3, 5, 7), (0, 2, 3, 1)).stride()
(105, 1, 21, 3)
>>> torch.empty_permuted((2, 3, 5, 7), (0, 2, 3, 1)).dim_order()
(0, 2, 3, 1)

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.empty_permuted.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API