torch.var()
函数是 PyTorch 库中的一个函数,用于计算张量(Tensor)的方差(variance)。方差是衡量数据分布离散程度的一个统计量,表示各数据偏离平均数之平方和的平均数。在 PyTorch 中,torch.var()
函数提供了灵活的方式来计算方差,包括是否考虑无偏估计(即除以 N-1
而不是 N
,其中 N
是样本数量),以及是否沿着特定的维度计算方差。
基本用法
python复制代码
import torch | |
# 创建一个张量 | |
x = torch.tensor([1.0, 2.0, 3.0, 4.0]) | |
# 计算整个张量的方差 | |
var_all = torch.var(x) | |
print(var_all) # 输出整个张量的方差 | |
# 计算方差时,考虑无偏估计(默认为False,即不考虑) | |
var_unbiased = torch.var(x, unbiased=True) | |
print(var_unbiased) # 输出无偏估计的方差 |
沿着特定维度计算方差
torch.var()
还允许你沿着张量的特定维度计算方差。
python复制代码
# 创建一个二维张量 | |
x = torch.tensor([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]) | |
# 沿着第一个维度(dim=0)计算方差,即计算每一列的方差 | |
var_col = torch.var(x, dim=0) | |
print(var_col) # 输出每一列的方差 | |
# 沿着第二个维度(dim=1)计算方差,即计算每一行的方差 | |
var_row = torch.var(x, dim=1) | |
print(var_row) # 输出每一行的方差 |
参数
input
(Tensor): 输入张量。dim
(int, optional): 要减少的维度。如果为None
,则计算所有元素的方差。unbiased
(bool, optional): 是否使用无偏估计。如果为True
,则分母为N - 1
,其中N
是样本数量;如果为False
或省略,则分母为N
。默认为False
。keepdim
(bool, optional): 如果为True
,则输出的张量将保持输入张量的维度。默认为False
。
注意事项
- 当
dim
参数被指定时,torch.var()
会沿着指定的维度计算方差,并返回一个新的张量,其中包含了每个指定维度的方差值。 - 如果
unbiased
设置为True
,则计算的是无偏方差,这在统计学中更为常见,尤其是在样本量较小时。 keepdim
参数允许你控制输出张量的维度,这在需要保持张量维度一致性的情况下非常有用。