def __init__(self, channel, reduction=16, D=-1): # Global coords does not require coords_key super(SELayer, self).__init__() self.fc = nn.Sequential( ME.MinkowskiLinear(channel, channel // reduction), ME.MinkowskiReLU(inplace=True), ME.MinkowskiLinear(channel // reduction, channel), ME.MinkowskiSigmoid()) self.pooling = ME.MinkowskiGlobalPooling(dimension=D) self.broadcast_mul = ME.MinkowskiBroadcastMultiplication(dimension=D)
def __init__(self, channels, gamma=2, b=1): super().__init__() t = int(abs((np.log2(channels) + b) / gamma)) k_size = t if t % 2 else t + 1 self.avg_pool = ME.MinkowskiGlobalPooling() self.conv = nn.Conv1d(1, 1, kernel_size=k_size, padding=(k_size - 1) // 2, bias=False) self.sigmoid = nn.Sigmoid() self.broadcast_mul = ME.MinkowskiBroadcastMultiplication()