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 (xla_client.Device | Sharding | None | None) – (可選)
Device
,表示應放置傳回陣列的裝置。 如果給定,則結果會提交到裝置。 如果未指定,則產生的陣列將解壓縮到與其來源相同的裝置上。 將device
設定為與external_array
來源不同的裝置將需要複製,這表示copy
必須設定為True
或None
。copy (bool | None | None) – (可選) 布林值,控制是否執行複製。 如果
copy=True
,則始終執行複製,即使解壓縮到相同的裝置上也是如此。 如果copy=False
,則永遠不會執行複製,並且在必要時會引發錯誤。 當copy=None
時,如果裝置傳輸需要,則可能會執行複製。
- 傳回值:
jax.Array
注意
雖然 JAX 陣列始終是不可變的,但 dlpack 緩衝區無法標記為不可變,並且 JAX 外部的程序可能會就地修改它們。 如果從 dlpack 緩衝區建構 jax Array,並且緩衝區稍後就地修改,則在使用相關聯的 JAX 陣列時可能會導致未定義的行為。