快捷方式

torch.frombuffer

torch.frombuffer(buffer, *, dtype, count=-1, offset=0, requires_grad=False) Tensor

從實現 Python buffer 協議的物件建立一個 1 維的 Tensor

跳過 buffer 中的前 offset 個位元組,並將其餘的原始位元組解釋為類型為 dtype 且具有 count 個元素的 1 維 tensor。

請注意,以下其中一項必須為真:

1. count 是一個正的非零數字,且 buffer 中的總位元組數大於 offset 加上 count 乘以 dtype 的大小(以位元組為單位)。

2. count 是負數,且 buffer 的長度(位元組數)減去 offset 後的值是 dtype 的大小(以位元組為單位)的倍數。

返回的 tensor 和 buffer 共享相同的記憶體。 對 tensor 的修改將反映在 buffer 中,反之亦然。 返回的 tensor 不可調整大小。

注意

此函數會增加擁有共享記憶體之物件的參考計數。 因此,在返回的 tensor 超出範圍之前,不會解除分配此類記憶體。

警告

當傳遞一個實現 buffer 協定但其資料不在 CPU 上的物件時,此函數的行為未定義。 這樣做很可能會導致區段錯誤。

警告

此函數不會嘗試推斷 dtype(因此,它不是可選的)。 傳遞與其來源不同的 dtype 可能會導致意外的行為。

參數

buffer (object) – 一個公開 buffer 介面的 Python 物件。

關鍵字參數
  • dtype (torch.dtype) – 返回 tensor 的所需資料類型。

  • count (int, optional) – 要讀取的所需元素數量。 如果為負數,將讀取所有元素(直到 buffer 結束)。 預設值:-1。

  • offset (int, optional) – 在 buffer 開頭要跳過的位元組數。 預設值:0。

  • requires_grad (bool, optional) – 如果 autograd 應該記錄返回 tensor 的操作。 預設值:False

範例

>>> import array
>>> a = array.array('i', [1, 2, 3])
>>> t = torch.frombuffer(a, dtype=torch.int32)
>>> t
tensor([ 1,  2,  3])
>>> t[0] = -1
>>> a
array([-1,  2,  3])

>>> # Interprets the signed char bytes as 32-bit integers.
>>> # Each 4 signed char elements will be interpreted as
>>> # 1 signed 32-bit integer.
>>> import array
>>> a = array.array('b', [-1, 0, 0, 0])
>>> torch.frombuffer(a, dtype=torch.int32)
tensor([255], dtype=torch.int32)

文件

存取 PyTorch 的完整開發人員文件

檢視文件

教學課程

取得針對初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得問題解答

檢視資源