Ejemplo n.º 1
0
    def __init__(self, bn=False):
        super(acipnet, self).__init__()
        self.multi_scale_1 = nn.Sequential(
            Dilated_Conv2D(3, 64, 3, dilation=1, bn=bn),  # receptive field 3*3
            # nn.MaxPool2d(2),
            Dilated_Conv2D(64, 64, 3, dilation=1, bn=bn),
            Dilated_Conv2D(64, 64, 3, dilation=1, bn=bn))  # 5*5

        self.multi_scale_2 = nn.Sequential(
            Dilated_Conv2D(64, 64, 3, dilation=2, bn=bn),  # 9*9
            Dilated_Conv2D(64, 64, 3, dilation=2, bn=bn),
            Dilated_Conv2D(64, 64, 3, dilation=2, bn=bn))  # 17*17

        self.multi_scale_3 = nn.Sequential(
            Dilated_Conv2D(64, 64, 3, dilation=4, bn=bn),  # 33*33
            Dilated_Conv2D(64, 64, 3, dilation=4, bn=bn),  # 65*65
            Dilated_Conv2D(64, 64, 3, dilation=1, bn=bn))  # 67*67

        self.parallel_1 = nn.Sequential(
            Conv2d(64, 64, 1, same_padding=False, bn=bn))
        self.parallel_2 = nn.Sequential(
            Dilated_Conv2D(64, 64, 3, dilation=4, bn=bn))
        self.parallel_3 = nn.Sequential(
            Dilated_Conv2D(64, 64, 3, dilation=8, bn=bn))
        self.parallel_4 = nn.Sequential(
            Dilated_Conv2D(64, 64, 3, dilation=12, bn=bn))

        self.fuse = nn.Sequential(Conv2d(128, 1, 1, same_padding=False, bn=bn))

        self.fuse_1 = nn.Sequential(
            Conv2d(512, 384, 1, same_padding=False, bn=bn),
            Conv2d(384, 256, 3, same_padding=True, bn=bn),
            Conv2d(256, 128, 3, same_padding=True, bn=bn))

        # self.image_pool = nn.AdaptiveMaxPool2d(1)
        self.image_pool = nn.AdaptiveAvgPool2d(1)
        self.image_pool_conv = nn.Sequential(
            Conv2d(64, 64, 1, same_padding=False, bn=bn))
        self.conv_b1 = nn.Sequential(
            Conv2d(64, 64, 1, same_padding=False, bn=bn))
        self.conv_b2 = nn.Sequential(
            Conv2d(64, 64, 1, same_padding=False, bn=bn))
        self.conv_b3 = nn.Sequential(
            Conv2d(64, 64, 1, same_padding=False, bn=bn))
        self.conv_pipe = nn.Sequential(
            Conv2d(320, 320, 1, same_padding=False, bn=bn))
 def __init__(self, bn=False):
     super(MCNN, self).__init__()
     
     self.branch1 = nn.Sequential(Conv2d( 1, 16, 9, same_padding=True, bn=bn),
                                  nn.MaxPool2d(2),
                                  Conv2d(16, 32, 7, same_padding=True, bn=bn),
                                  nn.MaxPool2d(2),
                                  Conv2d(32, 16, 7, same_padding=True, bn=bn),
                                  Conv2d(16,  8, 7, same_padding=True, bn=bn))
     
     self.branch2 = nn.Sequential(Conv2d( 1, 20, 7, same_padding=True, bn=bn),
                                  nn.MaxPool2d(2),
                                  Conv2d(20, 40, 5, same_padding=True, bn=bn),
                                  nn.MaxPool2d(2),
                                  Conv2d(40, 20, 5, same_padding=True, bn=bn),
                                  Conv2d(20, 10, 5, same_padding=True, bn=bn))
     
     self.branch3 = nn.Sequential(Conv2d( 1, 24, 5, same_padding=True, bn=bn),
                                  nn.MaxPool2d(2),
                                  Conv2d(24, 48, 3, same_padding=True, bn=bn),
                                  nn.MaxPool2d(2),
                                  Conv2d(48, 24, 3, same_padding=True, bn=bn),
                                  Conv2d(24, 12, 3, same_padding=True, bn=bn))
     
     self.fuse = nn.Sequential(Conv2d( 30, 1, 1, same_padding=True, bn=bn))
Ejemplo n.º 3
0
    def __init__(self):
        super(Model, self).__init__()

        self.prior = nn.Sequential(
            Conv2d(3, 64, 3, same_padding=True),
            Conv2d(64, 64, 3, same_padding=True), nn.MaxPool2d(2),
            Conv2d(64, 128, 3, same_padding=True),
            Conv2d(128, 128, 3, same_padding=True), nn.MaxPool2d(2),
            Conv2d(128, 256, 3, same_padding=True),
            Conv2d(256, 256, 3, same_padding=True),
            Conv2d(256, 256, 3, same_padding=True), nn.MaxPool2d(2),
            Conv2d(256, 512, 3, same_padding=True),
            Conv2d(512, 512, 3, same_padding=True),
            Conv2d(512, 512, 3, same_padding=True), nn.MaxPool2d(2),
            Conv2d(512, 512, 3, same_padding=True),
            Conv2d(512, 512, 3, same_padding=True),
            Conv2d(512, 512, 3, same_padding=True),
            Conv2d(512, 256, 1, same_padding=True),
            ConvTranspose2d(256, 128, 2, stride=2, padding=0),
            Conv2d(128, 128, 3, same_padding=True),
            Conv2d(128, 3, 1, same_padding=True))

        self.vgg16 = nn.Sequential(
            Conv2d(3, 64, 3, same_padding=True),
            Conv2d(64, 64, 3, same_padding=True), nn.MaxPool2d(2),
            Conv2d(64, 128, 3, same_padding=True),
            Conv2d(128, 128, 3, same_padding=True), nn.MaxPool2d(2),
            Conv2d(128, 256, 3, same_padding=True),
            Conv2d(256, 256, 3, same_padding=True),
            Conv2d(256, 256, 3, same_padding=True), nn.MaxPool2d(2),
            Conv2d(256, 512, 3, same_padding=True),
            Conv2d(512, 512, 3, same_padding=True),
            Conv2d(512, 512, 3, same_padding=True), nn.MaxPool2d(2),
            Conv2d(512, 512, 3, same_padding=True),
            Conv2d(512, 512, 3, same_padding=True),
            Conv2d(512, 512, 3, same_padding=True),
            Conv2d(512, 256, 1, same_padding=True),
            ConvTranspose2d(256, 128, 2, stride=2, padding=0))

        self.map = nn.Sequential(Conv2d(128, 128, 3, same_padding=True),
                                 Conv2d(128, 2, 1, same_padding=True))

        self.scale = nn.Sequential(
            Conv2d(128, 128, 3, same_padding=True),
            Conv2d(128, 2, 1, same_padding=True, relu=False),
            nn.AdaptiveAvgPool2d(1), nn.Hardtanh(-1.0, 1.0))
Ejemplo n.º 4
0
    def __init__(self, pool, bn=False):
        super(base, self).__init__()

        kernel_size = 5
        self.pool = pool
        if kernel_size == 7:
            self.c1 = Conv2d(1, 16, 9, same_padding=True, bn=bn)
            self.c2 = Conv2d(16, 32, 7, same_padding=True, bn=bn)
            self.c3_5 = nn.Sequential(
                Conv2d(32, 16, 7, same_padding=True, bn=bn),
                Conv2d(16, 8, 7, same_padding=True, bn=bn),
                Conv2d(8, 1, 1, same_padding=True, bn=bn))
        if kernel_size == 5:
            self.c1 = Conv2d(1, 20, 7, same_padding=True, bn=bn)
            self.c2 = Conv2d(20, 40, 5, same_padding=True, bn=bn)
            self.c3_5 = nn.Sequential(
                Conv2d(40, 20, 5, same_padding=True, bn=bn),
                Conv2d(20, 10, 5, same_padding=True, bn=bn),
                Conv2d(10, 1, 1, same_padding=True, bn=bn))
        if kernel_size == 3:
            self.c1 = Conv2d(1, 24, 5, same_padding=True, bn=bn)
            self.c2 = Conv2d(24, 48, 3, same_padding=True, bn=bn)
            self.c3_5 = nn.Sequential(
                Conv2d(48, 24, 3, same_padding=True, bn=bn),
                Conv2d(24, 12, 3, same_padding=True, bn=bn),
                Conv2d(12, 1, 1, same_padding=True, bn=bn))

        self.pool2 = nn.MaxPool2d(2, stride=2)
        self.pool2s1 = nn.MaxPool2d(2, stride=1)
        self.pool3s1 = nn.MaxPool2d(3, stride=1, padding=1)
        self.pool4 = nn.MaxPool2d(4, stride=2, padding=1)
        self.pool8 = nn.MaxPool2d(8, stride=2, padding=3)

        self.padding = nn.ReplicationPad2d((0, 1, 0, 1))
Ejemplo n.º 5
0
    def __init__(self, bn=False, num_classes=10):
        super(CMTL, self).__init__()

        self.num_classes = num_classes
        self.base_layer = nn.Sequential(
            Conv2d(1, 16, 9, same_padding=True, NL='prelu', bn=bn),
            Conv2d(16, 32, 7, same_padding=True, NL='prelu', bn=bn))

        self.hl_prior_1 = nn.Sequential(
            Conv2d(32, 16, 9, same_padding=True, NL='prelu', bn=bn),
            nn.MaxPool2d(2),
            Conv2d(16, 32, 7, same_padding=True, NL='prelu', bn=bn),
            nn.MaxPool2d(2),
            Conv2d(32, 16, 7, same_padding=True, NL='prelu', bn=bn),
            Conv2d(16, 8, 7, same_padding=True, NL='prelu', bn=bn))

        self.hl_prior_2 = nn.Sequential(
            nn.AdaptiveMaxPool2d((32, 32)),
            Conv2d(8, 4, 1, same_padding=True, NL='prelu', bn=bn))

        self.hl_prior_fc1 = FC(4 * 1024, 512, NL='prelu')
        self.hl_prior_fc2 = FC(512, 256, NL='prelu')
        self.hl_prior_fc3 = FC(256, self.num_classes, NL='prelu')

        self.de_stage_1 = nn.Sequential(
            Conv2d(32, 20, 7, same_padding=True, NL='prelu', bn=bn),
            nn.MaxPool2d(2),
            Conv2d(20, 40, 5, same_padding=True, NL='prelu', bn=bn),
            nn.MaxPool2d(2),
            Conv2d(40, 20, 5, same_padding=True, NL='prelu', bn=bn),
            Conv2d(20, 10, 5, same_padding=True, NL='prelu', bn=bn))

        self.de_stage_2 = nn.Sequential(
            Conv2d(18, 24, 3, same_padding=True, NL='prelu', bn=bn),
            Conv2d(24, 32, 3, same_padding=True, NL='prelu', bn=bn),
            nn.ConvTranspose2d(32,
                               16,
                               4,
                               stride=2,
                               padding=1,
                               output_padding=0,
                               bias=True), nn.PReLU(),
            nn.ConvTranspose2d(16,
                               8,
                               4,
                               stride=2,
                               padding=1,
                               output_padding=0,
                               bias=True), nn.PReLU(),
            Conv2d(8, 1, 1, same_padding=True, NL='relu', bn=bn))