Spec-Zone.ru › PyTorch 2.14

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 скопирует данные только при необходимости.
Тип возвращаемого значения:

Tensor

Примеры:

>>> 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

Spec-Zone.ru

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