torch.from_dlpack
-
torch.from_dlpack(ext_tensor) → Tensor[source] -
Преобразует тензор из внешней библиотеки в
torch.Tensor.Возвращённый тензор PyTorch будет использовать общую память с входным тензором (который мог быть получен из другой библиотеки). Обратите внимание, что операции на месте также будут влиять на данные входного тензора. Это может привести к неожиданным проблемам (например, в других библиотеках могут быть флаги «только для чтения» или неизменяемые структуры данных), поэтому пользователю следует делать это, только если он точно знает, что это допустимо.
- Параметры:
-
-
ext_tensor (object with
__dlpack__attribute, or a DLPack capsule) –Тензор или капсула DLPack для преобразования.
Если
ext_tensor— это объект тензора (или ndarray), он должен поддерживать протокол__dlpack__(то есть иметь методext_tensor.__dlpack__). В противном случаеext_tensorможет быть капсулой DLPack — непрозрачным экземпляромPyCapsule, обычно созданным функцией или методомto_dlpack. -
device (torch.device or str or None) – Необязательное устройство PyTorch, указывающее, где разместить новый тензор. Если значение None (по умолчанию), новый тензор будет находиться на том же устройстве, что и
ext_tensor. -
copy (bool or None) – Необязательное логическое значение, указывающее, нужно ли копировать
self. Если значение None, PyTorch скопирует данные только при необходимости.
-
- Тип возвращаемого значения:
Примеры:
>>> import torch.utils.dlpack >>> t = torch.arange(4) # Convert a tensor directly (supported in PyTorch >= 1.10) >>> t2 = torch.from_dlpack(t) >>> t2[:2] = -1 # show that memory is shared >>> t2 tensor([-1, -1, 2, 3]) >>> t tensor([-1, -1, 2, 3]) # The old-style DLPack usage, with an intermediate capsule object >>> capsule = torch.utils.dlpack.to_dlpack(t) >>> capsule <capsule object "dltensor" at ...> >>> t3 = torch.from_dlpack(capsule) >>> t3 tensor([-1, -1, 2, 3]) >>> t3[0] = -9 # now we're sharing memory between 3 tensors >>> t3 tensor([-9, -1, 2, 3]) >>> t2 tensor([-9, -1, 2, 3]) >>> t tensor([-9, -1, 2, 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.from_dlpack.html