PyTorch一小時掌握之基本操作篇

創建數據

在這裡插入圖片描述

torch.empty()

創建一個空張量矩陣.

格式:

torch.empty(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False, pin_memory=False, memory_format=torch.contiguous_format) → Tensor

參數:

  • size: 生成矩陣的形狀, 必選
  • dtype: 數據類型, 默認為 None

例子:

# 創建一個形狀為[2, 2]的矩陣
a = torch.empty(2, 2)
print(a)

# 創建一個形狀為[3, 3]的矩陣
b = torch.empty(3, 3)
print(b)

輸出結果:

tensor([[0., 0.],
[0., 0.]])
tensor([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])

torch.zeros()

創建一個全零矩陣.

格式:

torch.zeros(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor

參數:

  • size: 生成矩陣的形狀, 必選
  • dtype: 數據類型, 默認為 None

例子:

# 創建一個形狀為[2, 2]的全零數組
a = torch.zeros([2, 2], dtype=torch.float32)
print(a)

# 創建一個形狀為[3, 3]的全零數組
b = torch.zeros([3, 3], dtype=torch.float32)
print(b)

輸出結果:

tensor([[0., 0.],
[0., 0.]])
tensor([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])

torch.ones()

創建一個全一矩陣.

格式:

torch.ones(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor

參數:

  • size: 生成矩陣的形狀, 必選
  • dtype: 數據類型, 默認為 None

例子:

# 創建一個形狀為[2, 2]的全一數組
a = torch.ones([2, 2], dtype=torch.float32)
print(a)

# 創建一個形狀為[3, 3]的全一數組
b = torch.ones([3, 3], dtype=torch.float32)
print(b)

輸出結果:

tensor([[1., 1.],
[1., 1.]])
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])

torch.tensor()

通過數據創建張量.

格式:

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

參數:

  • data: 數據 (數組, 元組, ndarray, scalar)
  • dtype: 數據類型, 默認為 None

例子:

# 通過數據創建張量
array = np.arange(1, 10).reshape(3, 3)
print(array)
print(type(array))

tensor = torch.tensor(array)
print(tensor)
print(type(tensor))

輸出結果:

[[1 2 3]
[4 5 6]
[7 8 9]]
<class ‘numpy.ndarray’>
tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], dtype=torch.int32)
<class ‘torch.Tensor’>

torch.rand()

創建一個 0~1 隨機數的張量矩陣.

格式:

torch.rand(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor

參數:

  • size: 生成矩陣的形狀, 必選
  • dtype: 數據類型, 默認為 None

例子:

# 創建形狀為[2, 2]的隨機數矩陣
rand = torch.rand(2, 2)
print(rand)

輸出結果:

tensor([[0.6209, 0.3424],
[0.3506, 0.7986]])

數學運算

在這裡插入圖片描述

torch.add()

返回相加的張量.

格式:

torch.add(input, other, *, out=None) → Tensor

例子:

# 張量相加
input1 = torch.tensor([[1, 2], [3, 4]])
print(input1)

input2 = torch.tensor([[4, 3], [2, 1]])
print(input2)

output = torch.add(input1, input2)
print(output)

輸出結果:

tensor([[1, 2],
[3, 4]])
tensor([[4, 3],
[2, 1]])
tensor([[5, 5],
[5, 5]])

註: 相加的張量形狀必須一致, 否則會報錯.

torch.sub()

返回相減的張量.

例子:

# 張量相減
input1 = torch.tensor([[1, 2], [3, 4]])
print(input1)

input2 = torch.tensor([[4, 3], [2, 1]])
print(input2)

output = torch.sub(input1, input2)
print(output)

輸出結果:

tensor([[1, 2],
[3, 4]])
tensor([[4, 3],
[2, 1]])
tensor([[-3, -1],
[ 1, 3]])

torch.matmul()

例子:

# 張量矩陣相乘
input1 = torch.tensor([[1, 1, 1]])
print(input1)

input2 = torch.tensor([[3], [3], [3]])
print(input2)

output = torch.matmul(input1, input2)
print(output)

輸出結果:

tensor([[1, 1, 1]])
tensor([[3],
[3],
[3]])
tensor([[9]])

索引操作

索引 (index) 可以幫助我們快速的找到張量中的特定信息.

在這裡插入圖片描述

例子:

# 簡單的索引操作
ones = torch.ones([3, 3])
print(ones[: 2])
print(ones[:, : 2])

調試輸出:

tensor([[1., 1., 1.],
[1., 1., 1.]])
tensor([[1., 1.],
[1., 1.],
[1., 1.]])

到此這篇關於PyTorch一小時掌握之基本操作篇的文章就介紹到這瞭,更多相關PyTorch基本操作內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: