jax.dlpack.from_dlpack#
- jax.dlpack.from_dlpack(external_array, device=None, copy=None)[源代码]#
返回 DLPack 张量的
Array表示。如果未请求设备传输或复制,则返回的
Array将与external_array共享内存。- 参数:
external_array – 一个具有
__dlpack__和__dlpack_device__方法的数组对象。device (_jax.Device | Sharding | None) – 一个(可选的)
Device,表示应放置返回数组的设备。如果指定,则结果将被提交到设备。如果未指定,则结果数组将解包到其源自的同一设备。将device设置为与external_array源不同的设备将需要复制,这意味着copy必须设置为True或None。copy (bool | None) – 一个(可选的)布尔值,控制是否执行复制。如果
copy=True,则始终执行复制,即使解包到同一设备。如果copy=False,则永远不执行复制,并在必要时引发错误。当copy=None时,如果需要设备传输,则可能会执行复制。
- 返回:
一个 jax.Array
注意
虽然 JAX 数组始终是不可变的,但 dlpack 缓冲区无法标记为不可变,并且 JAX 外部的进程有可能就地修改它们。如果 jax Array 是从 dlpack 缓冲区构建的,并且该缓冲区之后被就地修改,则在使用相关的 JAX 数组时可能会导致未定义的行为。