Add Group Normalization

This commit is contained in:
zhaojichen 2020-04-16 01:56:12 -04:00
parent 898acc3201
commit 0b7de6968f
2 changed files with 3 additions and 3 deletions

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

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)