torch.utils.dlpack¶
- torch.utils.dlpack.from_dlpack(ext_tensor) Tensor[原始碼]¶
- 將外部函式庫中的張量轉換為 - torch.Tensor。- 返回的 PyTorch 張量將與輸入張量(可能來自另一個函式庫)共享記憶體。請注意,因此就地操作也會影響輸入張量的資料。這可能會導致意外問題(例如,其他函式庫可能具有唯讀旗標或不可變的資料結構),因此使用者只有在確定這樣做沒問題的情況下才應該這樣做。 - 參數
- ext_tensor(具有 - __dlpack__屬性的物件,或 DLPack 膠囊)–- 要轉換的張量或 DLPack 膠囊。 - 如果 - ext_tensor是一個張量(或 ndarray)物件,則它必須支援- __dlpack__協定(即,具有- ext_tensor.__dlpack__方法)。否則,- ext_tensor可能是一個 DLPack 膠囊,它是一個不透明的- PyCapsule實例,通常由- to_dlpack函數或方法產生。
- 返回類型
 - 範例 - >>> import torch.utils.dlpack >>> t = torch.arange(4) # Convert a tensor directly (supported in PyTorch >= 1.10) >>> t2 = torch.from_dlpack(t) >>> t2[:2] = -1 # show that memory is shared >>> t2 tensor([-1, -1, 2, 3]) >>> t tensor([-1, -1, 2, 3]) # The old-style DLPack usage, with an intermediate capsule object >>> capsule = torch.utils.dlpack.to_dlpack(t) >>> capsule <capsule object "dltensor" at ...> >>> t3 = torch.from_dlpack(capsule) >>> t3 tensor([-1, -1, 2, 3]) >>> t3[0] = -9 # now we're sharing memory between 3 tensors >>> t3 tensor([-9, -1, 2, 3]) >>> t2 tensor([-9, -1, 2, 3]) >>> t tensor([-9, -1, 2, 3]) 
- torch.utils.dlpack.to_dlpack(tensor) PyCapsule¶
- 返回一個表示張量的不透明物件(一個“DLPack 膠囊”)。 - 備註 - to_dlpack是一個舊版的 DLPack 介面。它返回的膠囊不能用於 Python 中的任何東西,除了將其用作- from_dlpack的輸入。DLPack 更地道的用法是直接在張量物件上調用- from_dlpack- 當該物件具有- __dlpack__方法時,這是可行的,而 PyTorch 和大多數其他函式庫現在確實都具有此方法。- 警告 - 對於使用 - to_dlpack生成的每個膠囊,只能調用一次- from_dlpack。當一個膠囊被多次使用時,行為是未定義的。- 參數
- tensor – 要匯出的張量 
 - DLPack 膠囊與張量的記憶體共享。