jax.dlpack.from_dlpack#

jax.dlpack.from_dlpack(external_array, device=None, copy=None)[原始碼]#

傳回 DLPack 張量的 Array 表示形式。

如果未請求裝置傳輸或複製,則傳回的 Arrayexternal_array 共用記憶體。

參數:
  • external_array – 具有 __dlpack__` ``__dlpack_device__ 方法的陣列物件。

  • device (xla_client.Device | Sharding | None | None) – (可選) Device,表示應放置傳回陣列的裝置。 如果給定,則結果會提交到裝置。 如果未指定,則產生的陣列將解壓縮到與其來源相同的裝置上。 將 device 設定為與 external_array 來源不同的裝置將需要複製,這表示 copy 必須設定為 TrueNone

  • copy (bool | None | None) – (可選) 布林值,控制是否執行複製。 如果 copy=True,則始終執行複製,即使解壓縮到相同的裝置上也是如此。 如果 copy=False,則永遠不會執行複製,並且在必要時會引發錯誤。 當 copy=None 時,如果裝置傳輸需要,則可能會執行複製。

傳回值:

jax.Array

注意

雖然 JAX 陣列始終是不可變的,但 dlpack 緩衝區無法標記為不可變,並且 JAX 外部的程序可能會就地修改它們。 如果從 dlpack 緩衝區建構 jax Array,並且緩衝區稍後就地修改,則在使用相關聯的 JAX 陣列時可能會導致未定義的行為。