torch.as_tensor¶
- torch.as_tensor(data: Any, dtype: Optional[dtype] = None, device: Optional[DeviceLikeType]) Tensor¶
將
data轉換為 tensor,如果可能,共享資料並保留自動求導歷史。如果
data已是具有所需資料型別 (dtype) 和裝置 (device) 的 tensor,則直接返回data本身;但如果data是具有不同資料型別或裝置的 tensor,則會像使用 data.to(dtype=dtype, device=device) 一樣進行復制。如果
data是具有相同資料型別 (dtype) 和裝置的 NumPy 陣列(ndarray),則使用torch.from_numpy()構造一個 tensor。如果
data是 CuPy 陣列,則返回的 tensor 將位於與 CuPy 陣列相同的裝置上,除非被device或預設裝置明確覆蓋。另請參閱
torch.tensor()從不共享其資料,而是建立一個新的“葉子 tensor”(參見自動求導機制)。- 引數
data (array_like) – tensor 的初始資料。可以是 list、tuple、NumPy
ndarray、標量及其他型別。dtype (
torch.dtype, 可選) – 返回 tensor 的所需資料型別。預設值:如果為None,則從data推斷資料型別。device (
torch.device, 可選) – 構造的 tensor 所在的裝置。如果為 None 且 data 是一個 tensor,則使用 data 的裝置。如果為 None 且 data 不是一個 tensor,則結果 tensor 將在當前裝置上構造。
示例
>>> 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])