文章目錄
- 前言
- 1.torch.argmax()
- 2.torch.argmin()
- 3.torch.amax()
- 4.torch.amin()
- 5.torch.all()
- 6.torch.any()
- 7.torch.max()
- 8.torch.dist()
- 9.torch.logsumexp()
- 10.torch.mean()
- 11.torch.norm()
- 12.torch.nansum()
- 13.torch.prod()
- 14.torch.cumsum()
- 15.torch.cumprod()
前言
1.torch.argmax()
torch.argmax() 是 PyTorch 中的一個函數,用于在指定維度上獲取張量中最大值的索引。
torch.argmax(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在最后一個維度上進行操作。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿著第一個維度獲取最大值的索引
max_indices = torch.argmax(x, dim=0)
print(max_indices) # 輸出: tensor([1, 1, 1])
2.torch.argmin()
torch.argmin() 是 PyTorch 中的一個函數,用于在指定維度上獲取張量中最小值的索引。
torch.argmin(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在最后一個維度上進行操作。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
"""
import torch# 創建一個張量
x = torch.tensor([[3, 1, 2], [6, 5, 4]])# 沿著第一個維度獲取最小值的索引
min_indices = torch.argmin(x, dim=0)
print(min_indices) # 輸出: tensor([0, 0, 0])
3.torch.amax()
在 PyTorch 中,torch.amax() 函數用于計算張量的最大值。
torch.amax(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在所有維度上進行操作,返回張量的全局最大值。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 計算全局最大值
global_max = torch.amax(x)
print(global_max) # 輸出: tensor(6)# 沿著第一個維度計算最大值
max_values = torch.amax(x, dim=0)
print(max_values) # 輸出: tensor([4, 5, 6])
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 計算全局最大值
global_max = torch.amax(x)
print(global_max) # 輸出: tensor(6)# 沿著第一個維度計算最大值
max_values = torch.amax(x, dim=0)
print(max_values) # 輸出: tensor([4, 5, 6])
4.torch.amin()
在 PyTorch 中,torch.amin() 函數用于計算張量的最小值。
torch.amin(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在所有維度上進行操作,返回張量的全局最小值。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
"""
import torch# 創建一個張量
x = torch.tensor([[3, 1, 2], [6, 5, 4]])# 計算全局最小值
global_min = torch.amin(x)
print(global_min) # 輸出: tensor(1)# 沿著第一個維度計算最小值
min_values = torch.amin(x, dim=0)
print(min_values) # 輸出: tensor([3, 1, 2])
5.torch.all()
torch.all() 是 PyTorch 中的一個函數,用于檢查張量中的所有元素是否都滿足某個條件。
torch.all(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在所有元素上進行操作,返回一個標量布爾值。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
"""
import torch# 創建一個張量
x = torch.tensor([[True, True], [False, True]])# 檢查全局是否所有元素都為 True
global_all = torch.all(x)
print(global_all) # 輸出: tensor(False)# 沿著第一個維度檢查是否所有元素都為 True
dim_all = torch.all(x, dim=0)
print(dim_all) # 輸出: tensor([False, True])
6.torch.any()
torch.any() 是 PyTorch 中的一個函數,用于檢查張量中的任意元素是否滿足某個條件。
torch.any(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在所有元素上進行操作,返回一個標量布爾值。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
"""
import torch# 創建一個張量
x = torch.tensor([[True, True], [False, True]])# 檢查全局是否存在任意一個元素為 True
global_any = torch.any(x)
print(global_any) # 輸出: tensor(True)# 沿著第一個維度檢查是否存在任意一個元素為 True
dim_any = torch.any(x, dim=0)
print(dim_any) # 輸出: tensor([ True, True])
7.torch.max()
torch.max() 是 PyTorch 中的一個函數,用于計算張量中的最大值。
torch.max(input, dim=None, keepdim=False, out=None)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在所有元素上進行操作,返回一個標量張量。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
out:可選參數,指定輸出張量作為結果的存儲位置。
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 計算全局最大值
global_max = torch.max(x)
print(global_max) # 輸出: tensor(6)# 沿著第一維度計算最大值和對應的索引
max_values, max_indices = torch.max(x, dim=0)
print(max_values) # 輸出: tensor([4, 5, 6])
print(max_indices) # 輸出: tensor([1, 1, 1])
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿著第一維度計算最大值和對應的索引
max_values, max_indices = torch.max(x, dim=1)
print(max_values) # 輸出: tensor([3, 6])
print(max_indices) # 輸出: tensor([2, 2])
8.torch.dist()
torch.dist() 是 PyTorch 中的一個函數,用于計算兩個張量之間的距離。
torch.dist(input, other, p=2)
"""
input:第一個輸入張量。
other:第二個輸入張量。
p:可選參數,表示要使用的距離度量。默認為 2,表示歐氏距離。
"""
import torch# 創建兩個張量
x = torch.tensor([1, 2, 3])
y = torch.tensor([4, 5, 6])# 計算歐氏距離
distance = torch.dist(x, y)
print(distance) # 輸出: tensor(5.1962)
9.torch.logsumexp()
torch.logsumexp() 是 PyTorch 中的一個函數,用于計算張量的對數求和指數。
torch.logsumexp(x, dim) = log(sum(exp(x), dim))
torch.logsumexp(input, dim, keepdim=False, out=None)
"""
input:輸入張量。
dim:指定在哪個維度上進行操作。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
out:可選參數,指定輸出張量作為結果的存儲位置。
"""
import torch# 創建一個張量
x = torch.tensor([1, 2, 3, 4])# 計算對數求和指數
result = torch.logsumexp(x, dim=0)
print(result) # 輸出: tensor(4.4402)
10.torch.mean()
torch.mean() 是 PyTorch 中的一個函數,用于計算張量的平均值。
torch.mean(input, dim=None, keepdim=False, out=None)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行平均值計算。如果未指定,則默認在所有元素上進行計算,返回一個標量張量。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
out:可選參數,指定輸出張量作為結果的存儲位置。
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 計算全局平均值
global_mean = torch.mean(x)
print(global_mean) # 輸出: tensor(3.5000)# 沿著第一維度計算平均值
mean_values = torch.mean(x, dim=0)
print(mean_values) # 輸出: tensor([2.5000, 3.5000, 4.5000])
11.torch.norm()
torch.norm() 是 PyTorch 中的一個函數,用于計算張量的范數(norm)。
torch.norm(input, p='fro', dim=None, keepdim=False, out=None)
"""
input:輸入張量。
p:可選參數,表示要計算的范數類型。默認為 'fro',表示計算 Frobenius 范數。還可以指定其他值,如 1 表示計算 L1 范數,2 表示計算 L2 范數等。
dim:可選參數,指定在哪個維度上進行范數計算。如果未指定,則默認在所有元素上進行計算,返回一個標量張量。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
out:可選參數,指定輸出張量作為結果的存儲位置。
"""
import torch# 創建一個張量
x = torch.tensor([[1., 2.], [3., 4.]])# 計算 Frobenius 范數
frobenius_norm = torch.norm(x)
print(frobenius_norm) # 輸出: tensor(5.4772)# 計算 L1 范數
l1_norm = torch.norm(x, p=1)
print(l1_norm) # 輸出: tensor(10.)# 計算 L2 范數
l2_norm = torch.norm(x, p=2)
print(l2_norm) # 輸出: tensor(5.4772)# 沿著第一維度計算范數
norm_values = torch.norm(x, dim=0)
print(norm_values) # 輸出: tensor([3.1623, 4.4721])
12.torch.nansum()
torch.nansum() 是 PyTorch 中的一個函數,用于計算張量中忽略 NaN(Not a Number)值的元素之和。
torch.nansum(input, dim=None, keepdim=False, dtype=None, out=None)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行求和。如果未指定,則默認在所有元素上進行求和,返回一個標量張量。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
dtype:可選參數,指定輸出張量的數據類型。如果未指定,則默認使用輸入張量的數據類型。
out:可選參數,指定輸出張量作為結果的存儲位置。
"""
import torch# 創建一個包含 NaN 值的張量
x = torch.tensor([[1, float('nan'), 3], [4, 5, float('nan')]])# 沿著第一維度計算忽略 NaN 值后的求和
sum_values = torch.nansum(x, dim=0)
print(sum_values) # 輸出: tensor([5., 5., 3.])
13.torch.prod()
torch.prod() 是 PyTorch 中的一個函數,用于計算張量中元素的乘積。
torch.prod(input, dim=None, keepdim=False, dtype=None)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行乘積計算。如果未指定,則默認在所有元素上進行乘積,返回一個標量張量。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
dtype:可選參數,指定輸出張量的數據類型。如果未指定,則默認使用輸入張量的數據類型。
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2], [3, 4]])# 計算所有元素的乘積
product = torch.prod(x)
print(product) # 輸出: tensor(24)# 沿著第一維度計算乘積
product_values = torch.prod(x, dim=0)
print(product_values) # 輸出: tensor([3, 8])# 沿著多個維度同時計算乘積
product_multiple_dims = torch.prod(x, dim=0, keepdim=True)
product_multiple_dims = torch.prod(product_multiple_dims, dim=1, keepdim=True)
print(product_multiple_dims) # 輸出: tensor([[24]])
14.torch.cumsum()
torch.cumsum() 是 PyTorch 中的一個函數,用于計算張量中元素的累積和(逐元素累積求和)。
torch.cumsum(input, dim, dtype=None)
"""
input:輸入張量。
dim:指定在哪個維度上進行累積和計算。
dtype:可選參數,指定輸出張量的數據類型。如果未指定,則默認使用輸入張量的數據類型。
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿著第一維度計算累積和
cumulative_sum = torch.cumsum(x, dim=0)
print(cumulative_sum)
# 輸出:
# tensor([[1, 2, 3],
# [5, 7, 9]])# 沿著第二維度計算累積和
cumulative_sum_dim1 = torch.cumsum(x, dim=1)
print(cumulative_sum_dim1)
# 輸出:
# tensor([[ 1, 3, 6],
# [ 4, 9, 15]])
15.torch.cumprod()
torch.cumprod() 是 PyTorch 中的一個函數,用于計算張量中元素的累積乘積(逐元素累積求積)。
torch.cumprod(input, dim, dtype=None)
"""
input:輸入張量。
dim:指定在哪個維度上進行累積乘積計算。
dtype:可選參數,指定輸出張量的數據類型。如果未指定,則默認使用輸入張量的數據類型
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿著第一維度計算累積乘積
cumulative_product = torch.cumprod(x, dim=0)
print(cumulative_product)
# 輸出:
# tensor([[ 1, 2, 3],
# [ 4, 10, 18]])# 沿著第二維度計算累積乘積
cumulative_product_dim1 = torch.cumprod(x, dim=1)
print(cumulative_product_dim1)
# 輸出:
# tensor([[ 1, 2, 6],
# [ 4, 20, 120]])