如何在PyTorch中计算张量的均值和标准差?
PyTorch张量类似于numpy数组。唯一的区别是张量利用GPU加速数字计算。 均值 可以使用 torch.mean() 方法计算。它返回输入张量中所有元素的均值。我们还可以按行和列计算均值,提供适当的轴或dim。
使用 torch.std() 计算张量的标准差。它返回张量中所有元素的标准差。与均值一样,我们还可以计算 标准差 、行或列。
步骤
-
导入所需的库。在所有以下Python示例中,所需的Python库是 torch 。确保已安装它。
-
定义一个PyTorch张量并打印它。
-
使用 torch.mean(input, axis) 计算均值。这里,输入是应计算均值的张量,轴(或 dim )是维度列表。将计算出的均值分配给新变量。
-
使用 torch.std(input, axis) 计算标准差。这里,输入是 张量 ,而 axis (或 dim )是维度列表。将计算出的标准差分配给新变量。
-
打印上述计算出的均值和标准差。
示例1
以下Python程序演示了如何计算一维张量的均值和标准差。
# 计算一维张量的均值和标准差的Python程序
# 导入库
import torch
# 创建一个张量
T = torch.Tensor([2.453, 4.432, 0.754, -6.554])
print("T:", T)
# 计算均值和标准差
mean = torch.mean(T)
std = torch.std(T)
# 打印计算出的均值和标准差
print("均值:", mean)
print("标准差:", std)
输出
T: tensor([ 2.4530, 4.4320, 0.7540, -6.5540])
均值: tensor(0.2713)
标准差: tensor(4.7920)
示例2
以下Python程序演示了如何在两个维度中计算二维张量的均值和标准差,即按行和列计算。
# 导入必要的库
import torch
# 创建一个3x4 二维张量
T = torch.Tensor([[2,4,7,-6],
[7,33,-62,23],
[2,-6,-77,54]])
print("T:\n", T)
# 计算均值和标准差
mean = torch.mean(T)
std = torch.std(T)
print("均值:", mean)
print("标准差:", std)
# 计算列的均值和标准差
mean = torch.mean(T, axis = 0)
std = torch.std(T, axis = 0)
print("列的均值:\n", mean)
print("列的标准差:\n", std)
# 计算行的均值和标准差
mean = torch.mean(T, axis = 1)
std = torch.std(T, axis= 1)
print("行的均值:\n", mean)
print("行的标准差:\n", std)
输出
T:
tensor([[ 2., 4., 7., -6.],
[ 7., 33., -62., 23.],
[ 2., -6., -77., 54.]])
均值: tensor(-1.5833)
标准差: tensor(36.2703)
列的均值:
tensor([ 3.6667, 10.3333, -44.0000, 23.6667])
列的标准差:
tensor([ 2.8868, 20.2567, 44.7996, 30.0056])
行的均值:
tensor([ 1.7500, 0.2500, -6.7500])
行的标准差:
tensor([ 5.5603, 42.8593, 53.8602])