【pytorch】torch.mean的使用
torch.mean是对torch.Tensor取均值。具体怎么使用,请看下面的例子不指定维度求均值如果不指定维度,是对Tensor里所有元素求均值,最后计算出来的结果是一个标量。a = torch.Tensor([0, 1, 2, 3, 4, 5]).view(2, 3, 1)print(a)mean = torch.mean(a)print(mean, mean.shape)结果如下:指定其中
torch.mean是对torch.Tensor取均值。具体怎么使用,请看下面的例子
不指定维度求均值
如果不指定维度,是对Tensor里所有元素求均值,最后计算出来的结果是一个标量。
a = torch.Tensor([0, 1, 2, 3, 4, 5]).view(2, 3, 1)
print(a)
mean = torch.mean(a)
print(mean, mean.shape)
结果如下:
指定其中一维
如果指定了某一维度,那么剩下的所有元素算均值。
下面的例子是对(2,3,1)Tensor的0维做均值,N=2,即所选的dim,输出为剩下的维度(3,1)
第一个:(0+3)/2=1.5
第二个: (1+4)/2=2.5
第三个: (2+5)/2=3.5
a = torch.Tensor([0, 1, 2, 3, 4, 5]).view(2, 3, 1)
print(a)
mean = torch.mean(a, 0)
print(mean, mean.shape)
例子2
如下对dim 1做mean
N=3,即所选的dim,输出为剩下的维度(2,1)
第一个:(0+1+2)/3=1
第二个: (3+4+5)/3=4
a = torch.Tensor([0, 1, 2, 3, 4, 5]).view(2, 3, 1)
print(a)
mean = torch.mean(a, 1)
print(mean, mean.shape)
例子3
如下对dim 2做mean
N=1,即所选的dim,输出为剩下的维度(3,2)
[0][0]:(0)/1=0
[0][1]:(1)/1=1
[1][0]:(2)/1=2
[1][1]:(3)/1=3
[2][0]:(4)/1=4
[2][1]:(5)/1=5
a = torch.Tensor([0, 1, 2, 3, 4, 5]).view(2, 3, 1)
print(a)
mean = torch.mean(a, 2)
print(mean, mean.shape)
指定多维
其实跟指定一个维度一样,下面如例子
dim=(1,2)
那么N = 2*3 = 6, 输出为(1,)
[0]=(0+1+2+3+4+5)/6 = 2.5
a = torch.Tensor([0, 1, 2, 3, 4, 5]).view(2, 3, 1)
print(a)
mean = torch.mean(a, (0,1))
print(mean, mean.shape)
如果需要保持维度,这里的输入为三个维度,那么保持维度的意思就是输出也是三个维度。
那么可以加入keepdim=True,
如下:
a = torch.Tensor([0, 1, 2, 3, 4, 5]).view(2, 3, 1)
print(a)
mean = torch.mean(a, (0,1), keepdim=True)
print(mean, mean.shape)
更多推荐
所有评论(0)