to_dlpack¶
将 Tensor 对象转化为一个带有 dltensor 的 PyCapsule
对象,该对象是一种称为 DLPack 的通用稳定内存数据结构,可用于不同深度学习框架之间的 Tensor 共享。
参数¶
x (Tensor) - Paddle Tensor,支持的数据类型为: bool,float16,float32,float64,uint8,int8,int16,int32,int64,uint8,complex64,complex128。
返回¶
dlpack (PyCapsule) - 一个带有 dltensor 的
PyCapsule
对象。
代码示例 1¶
>>> import paddle
>>> # x is a tensor with shape [2, 4]
>>> x = paddle.to_tensor([[0.2, 0.3, 0.5, 0.9],
... [0.1, 0.2, 0.6, 0.7]])
>>> dlpack = paddle.utils.dlpack.to_dlpack(x)
>>> print(dlpack)
<capsule object "dltensor" at 0x7f6103c681b0>
>>> # dlpack capsule will be renamed to 'used_dltensor' after decoded
>>> y = paddle.utils.dlpack.from_dlpack(dlpack)
>>> print(dlpack)
<capsule object "used_dltensor" at 0x7f6103c681b0>
代码示例 2¶
>>> # convert tensor from paddle to other framework using to_dlpack
>>> import torch
>>> x = paddle.randn([2, 4]).to(device="cpu")
>>> y = torch.from_dlpack(paddle.utils.dlpack.to_dlpack(x))
>>> print(y.shape)
torch.Size([2, 4])