torch.utils.dlpack
-
torch.utils.dlpack.from_dlpack(ext_tensor) → Tensor[source] -
Преобразует тензор из внешней библиотеки в
torch.Tensor.Возвращаемый тензор PyTorch будет совместно использовать память с входным тензором (который может быть из другой библиотеки). Обратите внимание, что операции на месте также повлияют на данные входного тензора. Это может привести к неожиданным проблемам (например, у других библиотек могут быть флаги только для чтения или неизменяемые структуры данных), поэтому пользователь должен делать это только в том случае, если он уверен, что это допустимо.
- Параметры
-
ext_tensor (объект с
__dlpack__атрибутом или DLPack капсула) –Тензор или DLPack капсула для преобразования.
Если
ext_tensorявляется тензором (или объектом ndarray), он должен поддерживать протокол__dlpack__(т. е. иметь методext_tensor.__dlpack__). В противном случаеext_tensorможет быть DLPack капсулой, которая является непрозрачнымPyCapsuleэкземпляром, обычно создаваемым функцией или методомto_dlpack. - Тип возвращаемого значения
Примеры:
>>> 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])
-
torch.utils.dlpack.to_dlpack(tensor) → PyCapsule -
Возвращает непрозрачный объект («DLPack капсула»), представляющий тензор.
Примечание
to_dlpackэто устаревший интерфейс DLPack. Капсула, которую он возвращает, не может быть использована ни для чего в Python, кроме как в качестве входного параметра дляfrom_dlpack. Более привычное использование DLPack заключается в непосредственном вызовеfrom_dlpackдля объекта тензора — это работает, когда этот объект имеет метод__dlpack__, что действительно имеют PyTorch и большинство других библиотек.Предупреждение
Вызывайте
from_dlpackтолько один раз для каждой капсулы, созданной с помощьюto_dlpack. Поведение при многократном использовании капсулы не определено.- Параметры
-
tensor – тензор, который нужно экспортировать
DLPack капсула совместно использует память тензора.
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/dlpack.html