не должно ли нормализация слоя x = torch.tensor([[1.5,0,0,0,0]])
быть [[1.5,-0.5,-0.5,-0.5]]
? согласно этой статье paper и уравнению из pytorch do c. Но torch.nn.LayerNorm
дает [[ 1.7320, -0.5773, -0.5773, -0.5773]]
Вот пример кода:
x = torch.tensor([[1.5,.0,.0,.0]])
layerNorm = torch.nn.LayerNorm(4, elementwise_affine = False)
y1 = layerNorm(x)
mean = x.mean(-1, keepdim = True)
var = x.var(-1, keepdim = True)
y2 = (x-mean)/torch.sqrt(var+layerNorm.eps)
где:
y1 == tensor([[ 1.7320, -0.5773, -0.5773, -0.5773]])
y2 == tensor([[ 1.5000, -0.5000, -0.5000, -0.5000]])