*学批量归一化时,关于x.mean(dim=0,keepdim=True)的一些问题的补充
下面的博主已经把归一化的问题讲得很清楚,链接如下:
归一化描述
但是博主在开头的时候x是以列表的形式存在的,要求x.shape的话,会出现以下的问题:
AttributeError: ‘list’ object has no attribute ‘shape’
所以这里要把x转换成tenso的形式,以pytorch为例:
import torch
from torch.autograd import Variable
x=torch.Tensor([[[1,2,3,4],[5,6,7,8],[9,10,11,12]],[[13,14,15,16],[17,18,19,20],[21,22,23,24]]])
print(x.shape)
之后会出现
torch.Size([2, 3, 4])
分别打印出:`
x_mean0 = torch.mean(x,dim=0,keepdim=True)
x_mean1 = torch.mean(x,dim=1,keepdim=True)
x_mean2 = torch.mean(x,dim=2,keepdim=True)
结果如下:
tensor([[[ 7., 8., 9., 10.],
[11., 12., 13., 14.],
[15., 16., 17., 18.]]])
tensor([[[ 5., 6., 7., 8.]],
[[17., 18., 19., 20.]]])
tensor([[[ 2.5000],
[ 6.5000],
[10.5000]],
[[14.5000],
[18.5000],
[22.5000]]])
结合前面博主:泰勒叫我去学习的内容,现在对torch.mean有更深的理解了