Browse Source

Add Group Normalization

tags/v0.2.0-alpha
zhaojichen 5 years ago
parent
commit
0b7de6968f
2 changed files with 3 additions and 3 deletions
  1. +2
    -2
      mindspore/nn/layer/normalization.py
  2. +1
    -1
      tests/ut/python/nn/test_batchnorm.py

+ 2
- 2
mindspore/nn/layer/normalization.py View File

@@ -346,7 +346,7 @@ class GroupNorm(Cell):
self.sqrt = P.Sqrt()

def construct(self, x):
batch, channel, height,width = self.shape(x)
batch, channel, height, width = self.shape(x)
x = self.reshape(x, (batch, self.num_groups, channel*height*width/self.num_groups))
mean = self.reduce_mean(x, 2)
var = self.reduce_sum(self.square(x - mean), 2) / (channel * height * width / self.num_groups - 1)
@@ -359,4 +359,4 @@ class GroupNorm(Cell):
def extend_repr(self):
"""Display instance object as string."""
s = 'num_groups={}, num_channels={}'.format(self.num_groups, self.num_channels)
return s
return s

+ 1
- 1
tests/ut/python/nn/test_batchnorm.py View File

@@ -67,4 +67,4 @@ class GroupNet(nn.Cell):
def test_compile_groupnorm():
net = nn.GroupNorm(16, 64)
input_data = Tensor(np.random.rand(1,64,256,256).astype(np.float32))
_executor.compile(net, input_data)
_executor.compile(net, input_data)

Loading…
Cancel
Save