def __init__(self): super(GatherTopKChannel, self).__init__() self.shape = ops.Shape() self.reshape = ops.Reshape() self.topk = ops.TopK(sorted=True) self.cast = ops.Cast() self.dtype = ops.DType() self.mod = ops.Mod() self.div = ops.Div()
def construct(self, x): pow = P.Pow() sum = P.ReduceSum() div = P.Div() norm = pow(x, self.power) norm = sum(x) norm = pow(norm, 1. / self.power) out = div(x, norm) return out