forked from mindspore-Ecosystem/mindspore
Add Group Normalization
This commit is contained in:
parent
898acc3201
commit
0b7de6968f
|
@ -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
|
||||
|
|
|
@ -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…
Reference in New Issue