評價此頁

torch.tensor#

torch.tensor(data, *, dtype=None, device=None, requires_grad=False, pin_memory=False) Tensor#

透過複製 data 來構造一個沒有自動求導歷史(也稱為“葉子張量”,參見 自動求導機制)的張量。

警告

在使用張量時,為了提高可讀性,優先使用 torch.Tensor.clone()torch.Tensor.detach()torch.Tensor.requires_grad_()。令 t 為一個張量,torch.tensor(t) 等同於 t.detach().clone(),而 torch.tensor(t, requires_grad=True) 等同於 t.detach().clone().requires_grad_(True)

另請參閱

torch.as_tensor() 會保留自動求導歷史,並在可能的情況下避免複製。 torch.from_numpy() 建立一個與 NumPy 陣列共享儲存的張量。

引數

data (array_like) – 張量的初始資料。可以是列表、元組、NumPy ndarray、標量以及其他型別。

關鍵字引數
  • dtype (torch.dtype, optional) – 返回張量所需的資料型別。預設為:如果為 None,則從 data 推斷資料型別。

  • device (torch.device, optional) – 所構造張量的裝置。如果為 None 且 data 是一個張量,則使用 data 的裝置。如果為 None 且 data 不是張量,則結果張量將在當前裝置上構造。

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

  • pin_memory (bool, optional) – 如果設定為 True,則返回的張量將被分配到固定記憶體中。僅適用於 CPU 張量。預設值:False

示例

>>> torch.tensor([[0.1, 1.2], [2.2, 3.1], [4.9, 5.2]])
tensor([[ 0.1000,  1.2000],
        [ 2.2000,  3.1000],
        [ 4.9000,  5.2000]])

>>> torch.tensor([0, 1])  # Type inference on data
tensor([ 0,  1])

>>> torch.tensor([[0.11111, 0.222222, 0.3333333]],
...              dtype=torch.float64,
...              device=torch.device('cuda:0'))  # creates a double tensor on a CUDA device
tensor([[ 0.1111,  0.2222,  0.3333]], dtype=torch.float64, device='cuda:0')

>>> torch.tensor(3.14159)  # Create a zero-dimensional (scalar) tensor
tensor(3.1416)

>>> torch.tensor([])  # Create an empty tensor (of size (0,))
tensor([])