目录

torch.utils.dlpack

torch.utils.dlpack 中。from_dlpackext_tensor 张量[来源]

将来自外部库的张量转换为 .torch.Tensor

返回的 PyTorch 张量将与输入张量共享内存 (可能来自另一个库)。请注意,就地操作 因此也会影响 Importing Tensor 的数据。这可能会导致 意外问题(例如,其他库可能具有只读标志或 不可变数据结构),因此用户只有在知道 当然,这很好。

参数

ext_tensor(具有属性的对象或 DLPack 胶囊)–__dlpack__

要转换的 tensor 或 DLPack 胶囊。

如果是 tensor(或 ndarray)对象,则必须支持 协议(即,有一个方法)。否则可能是 DLPack 胶囊,即 不透明实例,通常由函数或方法生成。ext_tensor__dlpack__ext_tensor.__dlpack__ext_tensorPyCapsuleto_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_dlpacktensor PyCapsule

返回表示张量的不透明对象(“DLPack 胶囊”)。

注意

to_dlpack是传统的 DLPack 接口。它返回的 capsule 除了将其用作 的输入外,不能用于 Python 中的任何内容。DLPack 更惯用的用法是直接在张量对象上调用 - 这在 object 有一个方法,而 PyTorch 和大多数其他 库现在确实有。from_dlpackfrom_dlpack__dlpack__

警告

每个使用 生成的胶囊 仅调用一次。 多次使用 capsule 时的行为未定义。from_dlpackto_dlpack

参数

tensor – 要导出的张量

DLPack 胶囊共享张量的内存。

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源