Example #1
0
    def __init__(self, num_channels_provider, activation_factory):
        super().__init__()

        channels_0 = num_channels_provider.get_num_channels(0)
        channels_1 = num_channels_provider.get_num_channels(1)
        channels_2 = num_channels_provider.get_num_channels(2)
        channels_3 = num_channels_provider.get_num_channels(3)
        channels_4 = num_channels_provider.get_num_channels(4)
        channels_5 = num_channels_provider.get_num_channels(5)

        self.encoder = nn.Sequential(
            InputBlock(3, channels_0, 3, 1, 1, activation_factory),
            ConvBlock(channels_0, channels_1, 3, 2, 1, activation_factory),
            ConvBlock(channels_1, channels_2, 3, 2, 1, activation_factory),
            ConvBlock(channels_2, channels_3, 3, 2, 1, activation_factory),
            ConvBlock(channels_3, channels_4, 3, 2, 1, activation_factory),
            ConvBlock(channels_4, channels_5, 3, 2, 1, activation_factory),
        )

        self.decoder = nn.Sequential(
            TransposeConvBlock(channels_5, channels_4, 3, 2, 1, 1,
                               activation_factory),
            TransposeConvBlock(channels_4, channels_3, 3, 2, 1, 1,
                               activation_factory),
            TransposeConvBlock(channels_3, channels_2, 3, 2, 1, 1,
                               activation_factory),
            TransposeConvBlock(channels_2, channels_1, 3, 2, 1, 1,
                               activation_factory),
            TransposeConvBlock(channels_1, channels_0, 3, 2, 1, 1,
                               activation_factory),
            OutputBlock(channels_0, 3, 3, 1, 1),
        )
Example #2
0
    def __init__(self, num_channels, k):
        super().__init__()

        activation_factory = ReLUFactory()

        self.input = InputBlock(3, num_channels, 3, 1, 1, activation_factory)
        self.enc1 = DenseBlock4(num_channels, k)
        self.down1 = DownMaxPool(num_channels + self.enc1.get_out_channels())
        self.enc2 = DenseBlock5(num_channels + self.enc1.get_out_channels(), k)
        self.down2 = DownMaxPool(num_channels + self.enc1.get_out_channels() +
                                 self.enc2.get_out_channels())

        self.dense = DenseBlock7(
            num_channels + self.enc1.get_out_channels() +
            self.enc2.get_out_channels(), k)

        self.up2 = UpConvTranspose(self.dense.get_out_channels())
        self.dec2 = DenseBlock5(
            num_channels + self.enc1.get_out_channels() +
            self.enc2.get_out_channels() + self.dense.get_out_channels(), k)
        self.up1 = UpConvTranspose(self.dec2.get_out_channels())
        self.dec1 = DenseBlock4(
            num_channels + self.enc1.get_out_channels() +
            self.dec2.get_out_channels(), k)
        self.output = OutputBlock(self.dec1.get_out_channels(), 3, 3, 1, 1)
Example #3
0
    def __init__(self, num_channels_provider, activation_factory):
        super().__init__()

        channels_0 = num_channels_provider.get_num_channels(0)
        channels_1 = num_channels_provider.get_num_channels(1)
        channels_2 = num_channels_provider.get_num_channels(2)
        channels_3 = num_channels_provider.get_num_channels(3)
        channels_4 = num_channels_provider.get_num_channels(4)
        channels_5 = num_channels_provider.get_num_channels(5)

        self.enc0 = InputBlock(3, channels_0, 3, 1, 1, activation_factory)
        self.enc1 = ConvBlock(channels_0, channels_1, 3, 2, 1,
                              activation_factory)
        self.enc2 = ConvBlock(channels_1, channels_2, 3, 2, 1,
                              activation_factory)
        self.enc3 = ConvBlock(channels_2, channels_3, 3, 2, 1,
                              activation_factory)
        self.enc4 = ConvBlock(channels_3, channels_4, 3, 2, 1,
                              activation_factory)
        self.enc5 = ConvBlock(channels_4, channels_5, 3, 2, 1,
                              activation_factory)

        self.dec5 = TransposeConvBlock(channels_5, channels_4, 3, 2, 1, 1,
                                       activation_factory)
        self.dec4 = TransposeConvBlock(channels_4 * 2, channels_3, 3, 2, 1, 1,
                                       activation_factory)
        self.dec3 = TransposeConvBlock(channels_3 * 2, channels_2, 3, 2, 1, 1,
                                       activation_factory)
        self.dec2 = TransposeConvBlock(channels_2 * 2, channels_1, 3, 2, 1, 1,
                                       activation_factory)
        self.dec1 = TransposeConvBlock(channels_1 * 2, channels_0, 3, 2, 1, 1,
                                       activation_factory)
        self.dec0 = OutputBlock(channels_0 * 2, 3, 3, 1, 1)
Example #4
0
    def __init__(self, num_channels_provider, activation_factory):
        super().__init__()

        channels_0 = num_channels_provider.get_num_channels(0)
        channels_1 = num_channels_provider.get_num_channels(1)
        channels_2 = num_channels_provider.get_num_channels(2)
        channels_3 = num_channels_provider.get_num_channels(3)
        channels_4 = num_channels_provider.get_num_channels(4)
        channels_5 = num_channels_provider.get_num_channels(5)

        self.enc0_ = InputBlock(3, channels_0, 3, 1, 1, activation_factory)
        self.enc0b = ConvBlock(channels_0, channels_0, 3, 1, 1,
                               activation_factory)
        self.enc1_ = ConvBlock(channels_0, channels_1, 3, 2, 1,
                               activation_factory)
        self.enc1b = ConvBlock(channels_1, channels_1, 3, 1, 1,
                               activation_factory)
        self.enc2_ = ConvBlock(channels_1, channels_2, 3, 2, 1,
                               activation_factory)
        self.enc2b = ConvBlock(channels_2, channels_2, 3, 1, 1,
                               activation_factory)
        self.enc3_ = ConvBlock(channels_2, channels_3, 3, 2, 1,
                               activation_factory)
        self.enc3b = ConvBlock(channels_3, channels_3, 3, 1, 1,
                               activation_factory)
        self.enc4_ = ConvBlock(channels_3, channels_4, 3, 2, 1,
                               activation_factory)
        self.enc4b = ConvBlock(channels_4, channels_4, 3, 1, 1,
                               activation_factory)
        self.enc5_ = ConvBlock(channels_4, channels_5, 3, 2, 1,
                               activation_factory)
        self.enc5b = ConvBlock(channels_5, channels_5, 3, 1, 1,
                               activation_factory)

        self.dec5b = TransposeConvBlock(channels_5, channels_5, 3, 1, 1, 0,
                                        activation_factory)
        self.dec5_ = TransposeConvBlock(channels_5, channels_4, 3, 2, 1, 1,
                                        activation_factory)
        self.dec4b = TransposeConvBlock(channels_4, channels_4, 3, 1, 1, 0,
                                        activation_factory)
        self.dec4_ = TransposeConvBlock(channels_4, channels_3, 3, 2, 1, 1,
                                        activation_factory)
        self.dec3b = TransposeConvBlock(channels_3, channels_3, 3, 1, 1, 0,
                                        activation_factory)
        self.dec3_ = TransposeConvBlock(channels_3, channels_2, 3, 2, 1, 1,
                                        activation_factory)
        self.dec2b = TransposeConvBlock(channels_2, channels_2, 3, 1, 1, 0,
                                        activation_factory)
        self.dec2_ = TransposeConvBlock(channels_2, channels_1, 3, 2, 1, 1,
                                        activation_factory)
        self.dec1b = TransposeConvBlock(channels_1, channels_1, 3, 1, 1, 0,
                                        activation_factory)
        self.dec1_ = TransposeConvBlock(channels_1, channels_0, 3, 2, 1, 1,
                                        activation_factory)
        self.dec0b = TransposeConvBlock(channels_0, channels_0, 3, 1, 1, 0,
                                        activation_factory)
        self.dec0_ = OutputBlock(channels_0, 3, 3, 1, 1)
    def __init__(self, num_channels, k):
        super().__init__()

        activation_factory = ReLUFactory()

        self.input = InputBlock(3, num_channels, 3, 1, 1, activation_factory)
        self.enc1 = DenseBlock4(num_channels, k)
        self.down1 = DownMaxPool(num_channels + self.enc1.get_out_channels())
        self.enc2 = DenseBlock5(self.down1.get_out_channels(), k)
        self.down2 = DownMaxPool(self.down1.get_out_channels() +
                                 self.enc2.get_out_channels())
        self.enc3 = DenseBlock7(self.down2.get_out_channels(), k)
        self.down3 = DownMaxPool(self.down2.get_out_channels() +
                                 self.enc3.get_out_channels())
        self.enc4 = DenseBlock10(self.down3.get_out_channels(), k)
        self.down4 = DownMaxPool(self.down3.get_out_channels() +
                                 self.enc4.get_out_channels())
        self.enc5 = DenseBlock12(self.down4.get_out_channels(), k)
        self.down5 = DownMaxPool(self.down4.get_out_channels() +
                                 self.enc5.get_out_channels())

        self.dense = DenseBlock15(self.down5.get_out_channels(), k)

        self.up5 = UpConvTranspose(self.dense.get_out_channels())
        self.dec5 = DenseBlock12(
            self.down4.get_out_channels() + self.enc5.get_out_channels() +
            self.up5.get_out_channels(), k)
        self.up4 = UpConvTranspose(self.dec5.get_out_channels())
        self.dec4 = DenseBlock10(
            self.down3.get_out_channels() + self.enc4.get_out_channels() +
            self.up4.get_out_channels(), k)
        self.up3 = UpConvTranspose(self.dec4.get_out_channels())
        self.dec3 = DenseBlock7(
            self.down2.get_out_channels() + self.enc3.get_out_channels() +
            self.up3.get_out_channels(), k)
        self.up2 = UpConvTranspose(self.dec3.get_out_channels())
        self.dec2 = DenseBlock5(
            self.down1.get_out_channels() + self.enc2.get_out_channels() +
            self.up2.get_out_channels(), k)
        self.up1 = UpConvTranspose(self.dec2.get_out_channels())
        self.dec1 = DenseBlock5(
            num_channels + self.enc1.get_out_channels() +
            self.up1.get_out_channels(), k)
        self.output = OutputBlock(self.dec1.get_out_channels(), 3, 3, 1, 1)