Spec-Zone.ru › PyTorch 1

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/1.13/dlpack.html

Spec-Zone.ru

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