.var()
是 PyTorch 中的一个函数,用于计算张量 inputs
的方差。方差是统计学中的一个重要指标,用于衡量数据的分散程度,即数据偏离其平均值的程度。.var()
可以计算整个张量的方差,也可以沿指定维度计算方差。
函数签名
torch.Tensor.var(dim=None, unbiased=True, keepdim=False)
参数
-
dim:整型或整型元组(可选)。
- 指定沿哪个维度或维度组合计算方差。如果未指定,则计算整个张量的方差。
-
unbiased:布尔值(可选,默认为
True
)。- 如果为
True
,使用无偏估计,即除以N-1
而不是N
(N
是样本数量)。无偏估计用于样本方差。 - 如果为
False
,则除以N
,即计算总体方差。
- 如果为
-
keepdim:布尔值(可选,默认为
False
)。- 如果为
True
,保留原始维度的大小,在计算完方差后保留这些维度(大小为 1)。
- 如果为
返回值
- 返回一个张量,其值是沿指定维度或整个张量的方差。
用法示例
示例 1:计算整个张量的方差
import torch
inputs = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0])
variance = inputs.var()
print(variance)
"""
# Output
tensor(2.5000)
"""
示例 2:沿指定维度计算方差
import torch
inputs = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
variance = inputs.var(dim=0)
print(variance)
"""
# Output
tensor([4.5000, 4.5000, 4.5000])
"""
解释:
- 输入张量为
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]
。 - 沿第 0 维(列)计算方差,即对每一列计算方差。
示例 3:无偏方差和总体方差
import torch
inputs = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0])
variance_unbiased = inputs.var(unbiased=True)
variance_biased = inputs.var(unbiased=False)
print(f"Unbiased variance: {variance_unbiased}")
print(f"Biased variance: {variance_biased}")
"""
# Output
Unbiased variance: tensor(2.5000)
Biased variance: tensor(2.0000)
"""
解释:
unbiased=True
时,计算无偏方差,分母为N-1
。unbiased=False
时,计算总体方差,分母为N
。
最后
.var()
是 PyTorch 中用于计算张量方差的函数,可以灵活地沿不同维度计算,并选择无偏或总体方差。通过理解其参数和返回值,可以在不同的数据处理中应用这个函数,以衡量数据的分散程度。