to_dlpack

paddle.utils.dlpack. to_dlpack ( x ) [源代码]

将 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])