def __init__(self, c_low, c_up, batch_norm=False, group_norm=False, instance_norm=False):
    super(CombinationModule, self).__init__()
    if batch_norm:
        self.up = nn.Sequential(nn.Conv2d(c_low, c_up, kernel_size=3, padding=1, stride=1), nn.BatchNorm2d(c_up), nn.ReLU(inplace=True))
        self.cat_conv = nn.Sequential(nn.Conv2d((c_up * 2), c_up, kernel_size=1, stride=1), nn.BatchNorm2d(c_up), nn.ReLU(inplace=True))
    elif group_norm:
        self.up = nn.Sequential(nn.Conv2d(c_low, c_up, kernel_size=3, padding=1, stride=1), nn.GroupNorm(num_groups=32, num_channels=c_up), nn.ReLU(inplace=True))
        self.cat_conv = nn.Sequential(nn.Conv2d((c_up * 2), c_up, kernel_size=1, stride=1), nn.GroupNorm(num_groups=32, num_channels=c_up), nn.ReLU(inplace=True))
    elif instance_norm:
        self.up = nn.Sequential(nn.Conv2d(c_low, c_up, kernel_size=3, padding=1, stride=1), nn.InstanceNorm2d(num_features=c_up), nn.ReLU(inplace=True))
        self.cat_conv = nn.Sequential(nn.Conv2d((c_up * 2), c_up, kernel_size=1, stride=1), nn.InstanceNorm2d(num_features=c_up), nn.ReLU(inplace=True))
    else:
        self.up = nn.Sequential(nn.Conv2d(c_low, c_up, kernel_size=3, padding=1, stride=1), nn.ReLU(inplace=True))
        self.cat_conv = nn.Sequential(nn.Conv2d((c_up * 2), c_up, kernel_size=1, stride=1), nn.ReLU(inplace=True))
def __init__(self, c_low, c_up, batch_norm=False, group_norm=False, instance_norm=False):
    super(CombinationModule, self).__init__()
    if batch_norm:
        self.up = nn.Sequential(nn.Conv2d(c_low, c_up, kernel_size=3, padding=1, stride=1), nn.BatchNorm2d(c_up), nn.ReLU(inplace=True))
        self.cat_conv = nn.Sequential(nn.Conv2d((c_up * 2), c_up, kernel_size=1, stride=1), nn.BatchNorm2d(c_up), nn.ReLU(inplace=True))
    elif group_norm:
        self.up = nn.Sequential(nn.Conv2d(c_low, c_up, kernel_size=3, padding=1, stride=1), nn.GroupNorm(num_groups=32, num_channels=c_up), nn.ReLU(inplace=True))
        self.cat_conv = nn.Sequential(nn.Conv2d((c_up * 2), c_up, kernel_size=1, stride=1), nn.GroupNorm(num_groups=32, num_channels=c_up), nn.ReLU(inplace=True))
    elif instance_norm:
        self.up = nn.Sequential(nn.Conv2d(c_low, c_up, kernel_size=3, padding=1, stride=1), nn.InstanceNorm2d(num_features=c_up), nn.ReLU(inplace=True))
        self.cat_conv = nn.Sequential(nn.Conv2d((c_up * 2), c_up, kernel_size=1, stride=1), nn.InstanceNorm2d(num_features=c_up), nn.ReLU(inplace=True))
    else:
        self.up = nn.Sequential(nn.Conv2d(c_low, c_up, kernel_size=3, padding=1, stride=1), nn.ReLU(inplace=True))
        self.cat_conv = nn.Sequential(nn.Conv2d((c_up * 2), c_up, kernel_size=1, stride=1), nn.ReLU(inplace=True))