Exemplo n.º 1
0
    def __init__(self, batch_norm=False):
        super(fba_decoder, self).__init__()
        pool_scales = (1, 2, 3, 6)
        self.batch_norm = batch_norm

        self.ppm = []

        for scale in pool_scales:
            self.ppm.append(
                nn.Sequential(
                    nn.AdaptiveAvgPool2d(scale),
                    L.Conv2d(2048, 256, kernel_size=1, bias=True),
                    norm(256, self.batch_norm),
                    nn.LeakyReLU(),
                ), )
        self.ppm = nn.ModuleList(self.ppm)

        self.conv_up1 = nn.Sequential(
            L.Conv2d(
                2048 + len(pool_scales) * 256,
                256,
                kernel_size=3,
                padding=1,
                bias=True,
            ),
            norm(256, self.batch_norm),
            nn.LeakyReLU(),
            L.Conv2d(256, 256, kernel_size=3, padding=1),
            norm(256, self.batch_norm),
            nn.LeakyReLU(),
        )

        self.conv_up2 = nn.Sequential(
            L.Conv2d(256 + 256, 256, kernel_size=3, padding=1, bias=True),
            norm(256, self.batch_norm),
            nn.LeakyReLU(),
        )
        if self.batch_norm:
            d_up3 = 128
        else:
            d_up3 = 64
        self.conv_up3 = nn.Sequential(
            L.Conv2d(256 + d_up3, 64, kernel_size=3, padding=1, bias=True),
            norm(64, self.batch_norm),
            nn.LeakyReLU(),
        )

        self.unpool = nn.MaxUnpool2d(2, stride=2)

        self.conv_up4 = nn.Sequential(
            nn.Conv2d(64 + 3 + 3 + 2, 32, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(),
            nn.Conv2d(32, 16, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(),
            nn.Conv2d(16, 7, kernel_size=1, padding=0, bias=True),
        )
Exemplo n.º 2
0
def conv1x1(in_planes, out_planes, stride=1):
    """1x1 convolution"""
    return L.Conv2d(in_planes,
                    out_planes,
                    kernel_size=1,
                    stride=stride,
                    bias=False)
Exemplo n.º 3
0
def conv3x3(in_planes, out_planes, stride=1):
    """3x3 convolution with padding"""
    return L.Conv2d(in_planes,
                    out_planes,
                    kernel_size=3,
                    stride=stride,
                    padding=1,
                    bias=False)
Exemplo n.º 4
0
Arquivo: model.py Projeto: nowsyn/SIM
    def __init__(self, args):
        super(Decoder, self).__init__()

        self.args = args.arch
        self.batch_norm = True
        middle_chn = 2048

        self.global_module = ASPP(middle_chn, self.args.atrous_rates,
                                  self.args.aspp_channel)
        en_chn = middle_chn + self.args.aspp_channel

        self.conv_up1 = nn.Sequential(
            L.Conv2d(en_chn, 256, kernel_size=3, padding=1, bias=True),
            norm(256, self.batch_norm), nn.LeakyReLU(),
            L.Conv2d(256, 256, kernel_size=3, padding=1),
            norm(256, self.batch_norm), nn.LeakyReLU())

        self.conv_up2 = nn.Sequential(
            L.Conv2d(256 + 256, 256, kernel_size=3, padding=1, bias=True),
            norm(256, self.batch_norm), nn.LeakyReLU())

        self.conv_up3 = nn.Sequential(
            L.Conv2d(256 + 128, 64, kernel_size=3, padding=1, bias=True),
            norm(64, self.batch_norm), nn.LeakyReLU())

        self.conv_up4_alpha = nn.Sequential(
            nn.Conv2d(64 + 3 + 3 + 2, 32, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(),
            nn.Conv2d(32, 16, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(),
            nn.Conv2d(16, 1, kernel_size=1, padding=0, bias=False))

        self.conv_up4_fb = nn.Sequential(
            nn.Conv2d(64 + 3 + 3 + 2, 32, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(),
            nn.Conv2d(32, 16, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(),
            nn.Conv2d(16, 6, kernel_size=1, padding=0, bias=False))

        self.conv_up4_attn = nn.Sequential(
            nn.Conv2d(64, 32, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(),
            nn.Conv2d(32, 16, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(),
            nn.Conv2d(16, 3, kernel_size=1, padding=0, bias=False))
Exemplo n.º 5
0
 def __init__(self, block, layers, num_classes=1000):
     super(ResNet, self).__init__()
     self.inplanes = 64
     self.conv1 = L.Conv2d(3, 64, kernel_size=7, stride=2, padding=3, bias=False)
     self.bn1 = L.BatchNorm2d(64)
     self.relu = nn.ReLU(inplace=True)
     self.maxpool = nn.MaxPool2d(
         kernel_size=3, stride=2, padding=1, return_indices=True,
     )
     self.layer1 = self._make_layer(block, 64, layers[0])
     self.layer2 = self._make_layer(block, 128, layers[1], stride=2)
     self.layer3 = self._make_layer(block, 256, layers[2], stride=2)
     self.layer4 = self._make_layer(block, 512, layers[3], stride=2)
     self.avgpool = nn.AdaptiveAvgPool2d((1, 1))
     self.fc = nn.Linear(512 * block.expansion, num_classes)
Exemplo n.º 6
0
    def __init__(self,
                 pool_scales=(1, 2, 3, 6),
                 use_mask_input=True,
                 use_usr_encoder=True,
                 gf=True):
        super(InteractiveSegNet, self).__init__()

        self.use_usr_encoder = use_usr_encoder
        self.gf = gf
        if (self.use_usr_encoder):
            self.use_mask_input = use_mask_input

            usr_inp_dim = 6
            if self.use_mask_input:
                usr_inp_dim += 1

            self.usr_encoder = usr_encoder2(input_dim=usr_inp_dim)

            usr_encoder_dims = [256, 256, 64]

        else:
            usr_encoder_dims = [0, 0, 0]

        conv_2_C = 256

        self.ppm = []

        for scale in pool_scales:
            self.ppm.append(
                nn.Sequential(
                    nn.AdaptiveAvgPool2d(scale),
                    L.Conv2d(2048 + usr_encoder_dims[0],
                             256,
                             kernel_size=1,
                             bias=True), nn.GroupNorm(32, 256),
                    nn.LeakyReLU()))
        self.ppm = nn.ModuleList(self.ppm)

        self.conv_up1 = nn.Sequential(
            L.Conv2d(2048 + len(pool_scales) * 256 + usr_encoder_dims[0],
                     256,
                     kernel_size=3,
                     padding=1,
                     bias=True), nn.GroupNorm(32, 256), nn.LeakyReLU(),
            L.Conv2d(256, 256, kernel_size=3, padding=1),
            nn.GroupNorm(32, 256), nn.LeakyReLU())

        self.conv_up2 = nn.Sequential(
            L.Conv2d(conv_2_C + 256 + usr_encoder_dims[1],
                     256,
                     kernel_size=3,
                     padding=1,
                     bias=True), nn.GroupNorm(32, 256), nn.LeakyReLU())

        self.conv_up3 = nn.Sequential(
            L.Conv2d(256 + 64 + usr_encoder_dims[2],
                     64,
                     kernel_size=3,
                     padding=1,
                     bias=True), nn.GroupNorm(32, 64), nn.LeakyReLU())

        self.conv_up4 = nn.Sequential(
            nn.Conv2d(64 + 3 + 6, 32, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(),
            nn.Conv2d(32, 16, kernel_size=3, padding=1, bias=True),
            nn.LeakyReLU(),
            nn.Conv2d(16, 1, kernel_size=1, padding=0, bias=True))

        if (self.gf):
            self.guided_map_conv1 = nn.Conv2d(5, 64, 1)
            self.guided_map_relu1 = nn.ReLU(inplace=True)
            self.guided_map_conv2 = nn.Conv2d(64, 1, 1)
            self.guided_filter = GuidedFilter(2, 1e-8)