torch.as_tensor¶
- torch.as_tensor(data: Any, dtype: Optional[dtype] = None, device: Optional[DeviceLikeType]) Tensor ¶
將
data
轉換為張量,盡可能共享資料並保留 autograd 歷史記錄。如果
data
已經是具有請求的 dtype 和 device 的張量,則返回data
本身,但如果data
是具有不同 dtype 或 device 的張量,則會像使用 data.to(dtype=dtype, device=device) 一樣複製它。如果
data
是具有相同 dtype 和 device 的 NumPy 陣列 (ndarray),則使用torch.from_numpy()
建立張量。如果
data
是一個 CuPy 陣列,除非被device
或預設裝置覆寫,否則回傳的張量將位於與 CuPy 陣列相同的裝置上。另請參閱
torch.tensor()
永遠不會共享其資料,並會建立一個新的「葉張量」(參見自動微分機制)。- 參數
data (array_like) – 張量的初始資料。可以是列表、元組、NumPy
ndarray
、純量和其他類型。dtype (
torch.dtype
, optional) – 回傳張量的期望資料類型。預設值:如果None
,則從data
推斷資料類型。device (
torch.device
, optional) – 建構張量的裝置。如果為 None 且 data 是一個張量,則使用 data 的裝置。如果為 None 且 data 不是張量,則在當前裝置上建構結果張量。
範例
>>> a = numpy.array([1, 2, 3]) >>> t = torch.as_tensor(a) >>> t tensor([ 1, 2, 3]) >>> t[0] = -1 >>> a array([-1, 2, 3]) >>> a = numpy.array([1, 2, 3]) >>> t = torch.as_tensor(a, device=torch.device('cuda')) >>> t tensor([ 1, 2, 3]) >>> t[0] = -1 >>> a array([1, 2, 3])