From 17a08dbf5a5a8e6b11e517f57ee558a431ce7c48 Mon Sep 17 00:00:00 2001 From: nakayamaiwao Date: Sat, 26 May 2018 20:48:27 +0800 Subject: [PATCH] reduce params --- config.py | 2 +- encoder_decoder.svg | 1545 ++++++++++++++++++++++++++++++++++++++ parallel_model.svg | 103 +++ refinement.svg | 1712 +++++++++++++++++++++++++++++++++++++++++++ segnet.py | 28 +- train.py | 2 +- 6 files changed, 3376 insertions(+), 16 deletions(-) create mode 100644 encoder_decoder.svg create mode 100644 parallel_model.svg create mode 100644 refinement.svg diff --git a/config.py b/config.py index 8025e83..b1b22b5 100644 --- a/config.py +++ b/config.py @@ -1,7 +1,7 @@ img_rows, img_cols = 320, 320 img_rows_half, img_cols_half = 160, 160 channel = 4 -batch_size = 16 +batch_size = 18 epochs = 1000 patience = 50 num_samples = 43100 diff --git a/encoder_decoder.svg b/encoder_decoder.svg new file mode 100644 index 0000000..f2491bb --- /dev/null +++ b/encoder_decoder.svg @@ -0,0 +1,1545 @@ + + + + + + +G + + +139941103165960 + +input_1: InputLayer + +input: + +output: + +(None, 320, 320, 4) + +(None, 320, 320, 4) + + +139941101449792 + +zero_padding2d_1: ZeroPadding2D + +input: + +output: + +(None, 320, 320, 4) + +(None, 322, 322, 4) + + +139941103165960->139941101449792 + + + + +139941101449736 + +conv1_1: Conv2D + +input: + +output: + +(None, 322, 322, 4) + +(None, 320, 320, 64) + + +139941101449792->139941101449736 + + + + +139941101451584 + +zero_padding2d_2: ZeroPadding2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 322, 322, 64) + + +139941101449736->139941101451584 + + + + +139941101449344 + +conv1_2: Conv2D + +input: + +output: + +(None, 322, 322, 64) + +(None, 320, 320, 64) + + +139941101451584->139941101449344 + + + + +139941101583104 + +max_pooling2d_1: MaxPooling2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 160, 160, 64) + + +139941101449344->139941101583104 + + + + +139941040668008 + +reshape_9: Reshape + +input: + +output: + +(None, 320, 320, 64) + +(None, 1, 320, 320, 64) + + +139941101449344->139941040668008 + + + + +139941101169688 + +zero_padding2d_3: ZeroPadding2D + +input: + +output: + +(None, 160, 160, 64) + +(None, 162, 162, 64) + + +139941101583104->139941101169688 + + + + +139941101170136 + +conv2_1: Conv2D + +input: + +output: + +(None, 162, 162, 64) + +(None, 160, 160, 128) + + +139941101169688->139941101170136 + + + + +139941101211488 + +zero_padding2d_4: ZeroPadding2D + +input: + +output: + +(None, 160, 160, 128) + +(None, 162, 162, 128) + + +139941101170136->139941101211488 + + + + +139941101209920 + +conv2_2: Conv2D + +input: + +output: + +(None, 162, 162, 128) + +(None, 160, 160, 128) + + +139941101211488->139941101209920 + + + + +139941101248072 + +max_pooling2d_2: MaxPooling2D + +input: + +output: + +(None, 160, 160, 128) + +(None, 80, 80, 128) + + +139941101209920->139941101248072 + + + + +139940910266240 + +reshape_7: Reshape + +input: + +output: + +(None, 160, 160, 128) + +(None, 1, 160, 160, 128) + + +139941101209920->139940910266240 + + + + +139941101334480 + +zero_padding2d_5: ZeroPadding2D + +input: + +output: + +(None, 80, 80, 128) + +(None, 82, 82, 128) + + +139941101248072->139941101334480 + + + + +139941101333920 + +conv3_1: Conv2D + +input: + +output: + +(None, 82, 82, 128) + +(None, 80, 80, 256) + + +139941101334480->139941101333920 + + + + +139941100854128 + +zero_padding2d_6: ZeroPadding2D + +input: + +output: + +(None, 80, 80, 256) + +(None, 82, 82, 256) + + +139941101333920->139941100854128 + + + + +139941100892680 + +conv3_2: Conv2D + +input: + +output: + +(None, 82, 82, 256) + +(None, 80, 80, 256) + + +139941100854128->139941100892680 + + + + +139941100935880 + +zero_padding2d_7: ZeroPadding2D + +input: + +output: + +(None, 80, 80, 256) + +(None, 82, 82, 256) + + +139941100892680->139941100935880 + + + + +139941100974544 + +conv3_3: Conv2D + +input: + +output: + +(None, 82, 82, 256) + +(None, 80, 80, 256) + + +139941100935880->139941100974544 + + + + +139941101017744 + +max_pooling2d_3: MaxPooling2D + +input: + +output: + +(None, 80, 80, 256) + +(None, 40, 40, 256) + + +139941100974544->139941101017744 + + + + +139940912060288 + +reshape_5: Reshape + +input: + +output: + +(None, 80, 80, 256) + +(None, 1, 80, 80, 256) + + +139941100974544->139940912060288 + + + + +139941101060448 + +zero_padding2d_8: ZeroPadding2D + +input: + +output: + +(None, 40, 40, 256) + +(None, 42, 42, 256) + + +139941101017744->139941101060448 + + + + +139941101062800 + +conv4_1: Conv2D + +input: + +output: + +(None, 42, 42, 256) + +(None, 40, 40, 512) + + +139941101060448->139941101062800 + + + + +139941100574424 + +zero_padding2d_9: ZeroPadding2D + +input: + +output: + +(None, 40, 40, 512) + +(None, 42, 42, 512) + + +139941101062800->139941100574424 + + + + +139941100615104 + +conv4_2: Conv2D + +input: + +output: + +(None, 42, 42, 512) + +(None, 40, 40, 512) + + +139941100574424->139941100615104 + + + + +139941100662288 + +zero_padding2d_10: ZeroPadding2D + +input: + +output: + +(None, 40, 40, 512) + +(None, 42, 42, 512) + + +139941100615104->139941100662288 + + + + +139941100700952 + +conv4_3: Conv2D + +input: + +output: + +(None, 42, 42, 512) + +(None, 40, 40, 512) + + +139941100662288->139941100700952 + + + + +139941100748304 + +max_pooling2d_4: MaxPooling2D + +input: + +output: + +(None, 40, 40, 512) + +(None, 20, 20, 512) + + +139941100700952->139941100748304 + + + + +139940913846144 + +reshape_3: Reshape + +input: + +output: + +(None, 40, 40, 512) + +(None, 1, 40, 40, 512) + + +139941100700952->139940913846144 + + + + +139941100784384 + +zero_padding2d_11: ZeroPadding2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 22, 22, 512) + + +139941100748304->139941100784384 + + + + +139941100783152 + +conv5_1: Conv2D + +input: + +output: + +(None, 22, 22, 512) + +(None, 20, 20, 512) + + +139941100784384->139941100783152 + + + + +139941100829272 + +zero_padding2d_12: ZeroPadding2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 22, 22, 512) + + +139941100783152->139941100829272 + + + + +139941100339720 + +conv5_2: Conv2D + +input: + +output: + +(None, 22, 22, 512) + +(None, 20, 20, 512) + + +139941100829272->139941100339720 + + + + +139941100390888 + +zero_padding2d_13: ZeroPadding2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 22, 22, 512) + + +139941100339720->139941100390888 + + + + +139941100435776 + +conv5_3: Conv2D + +input: + +output: + +(None, 22, 22, 512) + +(None, 20, 20, 512) + + +139941100390888->139941100435776 + + + + +139941100472808 + +max_pooling2d_5: MaxPooling2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 10, 10, 512) + + +139941100435776->139941100472808 + + + + +139941100556128 + +reshape_1: Reshape + +input: + +output: + +(None, 20, 20, 512) + +(None, 1, 20, 20, 512) + + +139941100435776->139941100556128 + + + + +139941100554728 + +up_sampling2d_1: UpSampling2D + +input: + +output: + +(None, 10, 10, 512) + +(None, 20, 20, 512) + + +139941100472808->139941100554728 + + + + +139941100555848 + +reshape_2: Reshape + +input: + +output: + +(None, 20, 20, 512) + +(None, 1, 20, 20, 512) + + +139941100554728->139941100555848 + + + + +139941100084864 + +concatenate_1: Concatenate + +input: + +output: + +[(None, 1, 20, 20, 512), (None, 1, 20, 20, 512)] + +(None, 2, 20, 20, 512) + + +139941100556128->139941100084864 + + + + +139941100555848->139941100084864 + + + + +139941100084808 + +unpooling_1: Unpooling + +input: + +output: + +(None, 2, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100084864->139941100084808 + + + + +139941100120552 + +deconv5_1: Conv2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100084808->139941100120552 + + + + +139941100081560 + +batch_normalization_1: BatchNormalization + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100120552->139941100081560 + + + + +139941100278448 + +deconv5_2: Conv2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100081560->139941100278448 + + + + +139941100019440 + +batch_normalization_2: BatchNormalization + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100278448->139941100019440 + + + + +139942929066248 + +deconv5_3: Conv2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100019440->139942929066248 + + + + +139940914076192 + +batch_normalization_3: BatchNormalization + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139942929066248->139940914076192 + + + + +139940913798504 + +up_sampling2d_2: UpSampling2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 40, 40, 512) + + +139940914076192->139940913798504 + + + + +139940913936088 + +reshape_4: Reshape + +input: + +output: + +(None, 40, 40, 512) + +(None, 1, 40, 40, 512) + + +139940913798504->139940913936088 + + + + +139940913934408 + +concatenate_2: Concatenate + +input: + +output: + +[(None, 1, 40, 40, 512), (None, 1, 40, 40, 512)] + +(None, 2, 40, 40, 512) + + +139940913846144->139940913934408 + + + + +139940913936088->139940913934408 + + + + +139940913290992 + +unpooling_2: Unpooling + +input: + +output: + +(None, 2, 40, 40, 512) + +(None, 40, 40, 512) + + +139940913934408->139940913290992 + + + + +139940913291160 + +deconv4_1: Conv2D + +input: + +output: + +(None, 40, 40, 512) + +(None, 40, 40, 256) + + +139940913290992->139940913291160 + + + + +139940913334704 + +batch_normalization_4: BatchNormalization + +input: + +output: + +(None, 40, 40, 256) + +(None, 40, 40, 256) + + +139940913291160->139940913334704 + + + + +139940912972744 + +deconv4_2: Conv2D + +input: + +output: + +(None, 40, 40, 256) + +(None, 40, 40, 256) + + +139940913334704->139940912972744 + + + + +139940912798408 + +batch_normalization_5: BatchNormalization + +input: + +output: + +(None, 40, 40, 256) + +(None, 40, 40, 256) + + +139940912972744->139940912798408 + + + + +139940912742528 + +deconv4_3: Conv2D + +input: + +output: + +(None, 40, 40, 256) + +(None, 40, 40, 256) + + +139940912798408->139940912742528 + + + + +139940912282144 + +batch_normalization_6: BatchNormalization + +input: + +output: + +(None, 40, 40, 256) + +(None, 40, 40, 256) + + +139940912742528->139940912282144 + + + + +139940912020840 + +up_sampling2d_3: UpSampling2D + +input: + +output: + +(None, 40, 40, 256) + +(None, 80, 80, 256) + + +139940912282144->139940912020840 + + + + +139940911634136 + +reshape_6: Reshape + +input: + +output: + +(None, 80, 80, 256) + +(None, 1, 80, 80, 256) + + +139940912020840->139940911634136 + + + + +139940911632456 + +concatenate_3: Concatenate + +input: + +output: + +[(None, 1, 80, 80, 256), (None, 1, 80, 80, 256)] + +(None, 2, 80, 80, 256) + + +139940912060288->139940911632456 + + + + +139940911634136->139940911632456 + + + + +139940911509232 + +unpooling_3: Unpooling + +input: + +output: + +(None, 2, 80, 80, 256) + +(None, 80, 80, 256) + + +139940911632456->139940911509232 + + + + +139940911509400 + +deconv3_1: Conv2D + +input: + +output: + +(None, 80, 80, 256) + +(None, 80, 80, 128) + + +139940911509232->139940911509400 + + + + +139940911557040 + +batch_normalization_7: BatchNormalization + +input: + +output: + +(None, 80, 80, 128) + +(None, 80, 80, 128) + + +139940911509400->139940911557040 + + + + +139940911190984 + +deconv3_2: Conv2D + +input: + +output: + +(None, 80, 80, 128) + +(None, 80, 80, 128) + + +139940911557040->139940911190984 + + + + +139940911020744 + +batch_normalization_8: BatchNormalization + +input: + +output: + +(None, 80, 80, 128) + +(None, 80, 80, 128) + + +139940911190984->139940911020744 + + + + +139940910960768 + +deconv3_3: Conv2D + +input: + +output: + +(None, 80, 80, 128) + +(None, 80, 80, 128) + + +139940911020744->139940910960768 + + + + +139940910504480 + +batch_normalization_9: BatchNormalization + +input: + +output: + +(None, 80, 80, 128) + +(None, 80, 80, 128) + + +139940910960768->139940910504480 + + + + +139940910214504 + +up_sampling2d_4: UpSampling2D + +input: + +output: + +(None, 80, 80, 128) + +(None, 160, 160, 128) + + +139940910504480->139940910214504 + + + + +139941040778880 + +reshape_8: Reshape + +input: + +output: + +(None, 160, 160, 128) + +(None, 1, 160, 160, 128) + + +139940910214504->139941040778880 + + + + +139940909840088 + +concatenate_4: Concatenate + +input: + +output: + +[(None, 1, 160, 160, 128), (None, 1, 160, 160, 128)] + +(None, 2, 160, 160, 128) + + +139940910266240->139940909840088 + + + + +139941040778880->139940909840088 + + + + +139940909838408 + +unpooling_4: Unpooling + +input: + +output: + +(None, 2, 160, 160, 128) + +(None, 160, 160, 128) + + +139940909840088->139940909838408 + + + + +139941100031336 + +deconv2_1: Conv2D + +input: + +output: + +(None, 160, 160, 128) + +(None, 160, 160, 64) + + +139940909838408->139941100031336 + + + + +139941100029768 + +batch_normalization_10: BatchNormalization + +input: + +output: + +(None, 160, 160, 64) + +(None, 160, 160, 64) + + +139941100031336->139941100029768 + + + + +139941040913824 + +deconv2_2: Conv2D + +input: + +output: + +(None, 160, 160, 64) + +(None, 160, 160, 64) + + +139941100029768->139941040913824 + + + + +139941040888072 + +batch_normalization_11: BatchNormalization + +input: + +output: + +(None, 160, 160, 64) + +(None, 160, 160, 64) + + +139941040913824->139941040888072 + + + + +139941040619704 + +up_sampling2d_5: UpSampling2D + +input: + +output: + +(None, 160, 160, 64) + +(None, 320, 320, 64) + + +139941040888072->139941040619704 + + + + +139941040714864 + +reshape_10: Reshape + +input: + +output: + +(None, 320, 320, 64) + +(None, 1, 320, 320, 64) + + +139941040619704->139941040714864 + + + + +139941040716208 + +concatenate_5: Concatenate + +input: + +output: + +[(None, 1, 320, 320, 64), (None, 1, 320, 320, 64)] + +(None, 2, 320, 320, 64) + + +139941040668008->139941040716208 + + + + +139941040714864->139941040716208 + + + + +139940908358904 + +unpooling_5: Unpooling + +input: + +output: + +(None, 2, 320, 320, 64) + +(None, 320, 320, 64) + + +139941040716208->139940908358904 + + + + +139940908359016 + +deconv1_1: Conv2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940908358904->139940908359016 + + + + +139940908416920 + +batch_normalization_12: BatchNormalization + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940908359016->139940908416920 + + + + +139940908047664 + +deconv1_2: Conv2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940908416920->139940908047664 + + + + +139940908087224 + +batch_normalization_13: BatchNormalization + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940908047664->139940908087224 + + + + +139940907475464 + +pred: Conv2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 1) + + +139940908087224->139940907475464 + + + + + diff --git a/parallel_model.svg b/parallel_model.svg new file mode 100644 index 0000000..37270dc --- /dev/null +++ b/parallel_model.svg @@ -0,0 +1,103 @@ + + + + + + +G + + +139941103165960 + +input_1: InputLayer + +input: + +output: + +(None, 320, 320, 4) + +(None, 320, 320, 4) + + +139939966963272 + +lambda_12: Lambda + +input: + +output: + +(None, 320, 320, 4) + +(None, 320, 320, 4) + + +139941103165960->139939966963272 + + + + +139940906542864 + +lambda_23: Lambda + +input: + +output: + +(None, 320, 320, 4) + +(None, 320, 320, 4) + + +139941103165960->139940906542864 + + + + +139939971312440 + +model_2: Model + +input: + +output: + +(None, 320, 320, 4) + +(None, 320, 320, 1) + + +139939966963272->139939971312440 + + + + +139940906542864->139939971312440 + + + + +139939974831184 + +refinement_pred: Concatenate + +input: + +output: + +[(None, 320, 320, 1), (None, 320, 320, 1)] + +(None, 320, 320, 1) + + +139939971312440->139939974831184 + + + + + diff --git a/refinement.svg b/refinement.svg new file mode 100644 index 0000000..1b79b6e --- /dev/null +++ b/refinement.svg @@ -0,0 +1,1712 @@ + + + + + + +G + + +139941103165960 + +input_1: InputLayer + +input: + +output: + +(None, 320, 320, 4) + +(None, 320, 320, 4) + + +139941101449792 + +zero_padding2d_1: ZeroPadding2D + +input: + +output: + +(None, 320, 320, 4) + +(None, 322, 322, 4) + + +139941103165960->139941101449792 + + + + +139940906600152 + +lambda_11: Lambda + +input: + +output: + +(None, 320, 320, 4) + +(None, 320, 320, 3) + + +139941103165960->139940906600152 + + + + +139941101449736 + +conv1_1: Conv2D + +input: + +output: + +(None, 322, 322, 4) + +(None, 320, 320, 64) + + +139941101449792->139941101449736 + + + + +139941101451584 + +zero_padding2d_2: ZeroPadding2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 322, 322, 64) + + +139941101449736->139941101451584 + + + + +139941101449344 + +conv1_2: Conv2D + +input: + +output: + +(None, 322, 322, 64) + +(None, 320, 320, 64) + + +139941101451584->139941101449344 + + + + +139941101583104 + +max_pooling2d_1: MaxPooling2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 160, 160, 64) + + +139941101449344->139941101583104 + + + + +139941040668008 + +reshape_9: Reshape + +input: + +output: + +(None, 320, 320, 64) + +(None, 1, 320, 320, 64) + + +139941101449344->139941040668008 + + + + +139941101169688 + +zero_padding2d_3: ZeroPadding2D + +input: + +output: + +(None, 160, 160, 64) + +(None, 162, 162, 64) + + +139941101583104->139941101169688 + + + + +139941101170136 + +conv2_1: Conv2D + +input: + +output: + +(None, 162, 162, 64) + +(None, 160, 160, 128) + + +139941101169688->139941101170136 + + + + +139941101211488 + +zero_padding2d_4: ZeroPadding2D + +input: + +output: + +(None, 160, 160, 128) + +(None, 162, 162, 128) + + +139941101170136->139941101211488 + + + + +139941101209920 + +conv2_2: Conv2D + +input: + +output: + +(None, 162, 162, 128) + +(None, 160, 160, 128) + + +139941101211488->139941101209920 + + + + +139941101248072 + +max_pooling2d_2: MaxPooling2D + +input: + +output: + +(None, 160, 160, 128) + +(None, 80, 80, 128) + + +139941101209920->139941101248072 + + + + +139940910266240 + +reshape_7: Reshape + +input: + +output: + +(None, 160, 160, 128) + +(None, 1, 160, 160, 128) + + +139941101209920->139940910266240 + + + + +139941101334480 + +zero_padding2d_5: ZeroPadding2D + +input: + +output: + +(None, 80, 80, 128) + +(None, 82, 82, 128) + + +139941101248072->139941101334480 + + + + +139941101333920 + +conv3_1: Conv2D + +input: + +output: + +(None, 82, 82, 128) + +(None, 80, 80, 256) + + +139941101334480->139941101333920 + + + + +139941100854128 + +zero_padding2d_6: ZeroPadding2D + +input: + +output: + +(None, 80, 80, 256) + +(None, 82, 82, 256) + + +139941101333920->139941100854128 + + + + +139941100892680 + +conv3_2: Conv2D + +input: + +output: + +(None, 82, 82, 256) + +(None, 80, 80, 256) + + +139941100854128->139941100892680 + + + + +139941100935880 + +zero_padding2d_7: ZeroPadding2D + +input: + +output: + +(None, 80, 80, 256) + +(None, 82, 82, 256) + + +139941100892680->139941100935880 + + + + +139941100974544 + +conv3_3: Conv2D + +input: + +output: + +(None, 82, 82, 256) + +(None, 80, 80, 256) + + +139941100935880->139941100974544 + + + + +139941101017744 + +max_pooling2d_3: MaxPooling2D + +input: + +output: + +(None, 80, 80, 256) + +(None, 40, 40, 256) + + +139941100974544->139941101017744 + + + + +139940912060288 + +reshape_5: Reshape + +input: + +output: + +(None, 80, 80, 256) + +(None, 1, 80, 80, 256) + + +139941100974544->139940912060288 + + + + +139941101060448 + +zero_padding2d_8: ZeroPadding2D + +input: + +output: + +(None, 40, 40, 256) + +(None, 42, 42, 256) + + +139941101017744->139941101060448 + + + + +139941101062800 + +conv4_1: Conv2D + +input: + +output: + +(None, 42, 42, 256) + +(None, 40, 40, 512) + + +139941101060448->139941101062800 + + + + +139941100574424 + +zero_padding2d_9: ZeroPadding2D + +input: + +output: + +(None, 40, 40, 512) + +(None, 42, 42, 512) + + +139941101062800->139941100574424 + + + + +139941100615104 + +conv4_2: Conv2D + +input: + +output: + +(None, 42, 42, 512) + +(None, 40, 40, 512) + + +139941100574424->139941100615104 + + + + +139941100662288 + +zero_padding2d_10: ZeroPadding2D + +input: + +output: + +(None, 40, 40, 512) + +(None, 42, 42, 512) + + +139941100615104->139941100662288 + + + + +139941100700952 + +conv4_3: Conv2D + +input: + +output: + +(None, 42, 42, 512) + +(None, 40, 40, 512) + + +139941100662288->139941100700952 + + + + +139941100748304 + +max_pooling2d_4: MaxPooling2D + +input: + +output: + +(None, 40, 40, 512) + +(None, 20, 20, 512) + + +139941100700952->139941100748304 + + + + +139940913846144 + +reshape_3: Reshape + +input: + +output: + +(None, 40, 40, 512) + +(None, 1, 40, 40, 512) + + +139941100700952->139940913846144 + + + + +139941100784384 + +zero_padding2d_11: ZeroPadding2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 22, 22, 512) + + +139941100748304->139941100784384 + + + + +139941100783152 + +conv5_1: Conv2D + +input: + +output: + +(None, 22, 22, 512) + +(None, 20, 20, 512) + + +139941100784384->139941100783152 + + + + +139941100829272 + +zero_padding2d_12: ZeroPadding2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 22, 22, 512) + + +139941100783152->139941100829272 + + + + +139941100339720 + +conv5_2: Conv2D + +input: + +output: + +(None, 22, 22, 512) + +(None, 20, 20, 512) + + +139941100829272->139941100339720 + + + + +139941100390888 + +zero_padding2d_13: ZeroPadding2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 22, 22, 512) + + +139941100339720->139941100390888 + + + + +139941100435776 + +conv5_3: Conv2D + +input: + +output: + +(None, 22, 22, 512) + +(None, 20, 20, 512) + + +139941100390888->139941100435776 + + + + +139941100472808 + +max_pooling2d_5: MaxPooling2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 10, 10, 512) + + +139941100435776->139941100472808 + + + + +139941100556128 + +reshape_1: Reshape + +input: + +output: + +(None, 20, 20, 512) + +(None, 1, 20, 20, 512) + + +139941100435776->139941100556128 + + + + +139941100554728 + +up_sampling2d_1: UpSampling2D + +input: + +output: + +(None, 10, 10, 512) + +(None, 20, 20, 512) + + +139941100472808->139941100554728 + + + + +139941100555848 + +reshape_2: Reshape + +input: + +output: + +(None, 20, 20, 512) + +(None, 1, 20, 20, 512) + + +139941100554728->139941100555848 + + + + +139941100084864 + +concatenate_1: Concatenate + +input: + +output: + +[(None, 1, 20, 20, 512), (None, 1, 20, 20, 512)] + +(None, 2, 20, 20, 512) + + +139941100556128->139941100084864 + + + + +139941100555848->139941100084864 + + + + +139941100084808 + +unpooling_1: Unpooling + +input: + +output: + +(None, 2, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100084864->139941100084808 + + + + +139941100120552 + +deconv5_1: Conv2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100084808->139941100120552 + + + + +139941100081560 + +batch_normalization_1: BatchNormalization + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100120552->139941100081560 + + + + +139941100278448 + +deconv5_2: Conv2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100081560->139941100278448 + + + + +139941100019440 + +batch_normalization_2: BatchNormalization + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100278448->139941100019440 + + + + +139942929066248 + +deconv5_3: Conv2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139941100019440->139942929066248 + + + + +139940914076192 + +batch_normalization_3: BatchNormalization + +input: + +output: + +(None, 20, 20, 512) + +(None, 20, 20, 512) + + +139942929066248->139940914076192 + + + + +139940913798504 + +up_sampling2d_2: UpSampling2D + +input: + +output: + +(None, 20, 20, 512) + +(None, 40, 40, 512) + + +139940914076192->139940913798504 + + + + +139940913936088 + +reshape_4: Reshape + +input: + +output: + +(None, 40, 40, 512) + +(None, 1, 40, 40, 512) + + +139940913798504->139940913936088 + + + + +139940913934408 + +concatenate_2: Concatenate + +input: + +output: + +[(None, 1, 40, 40, 512), (None, 1, 40, 40, 512)] + +(None, 2, 40, 40, 512) + + +139940913846144->139940913934408 + + + + +139940913936088->139940913934408 + + + + +139940913290992 + +unpooling_2: Unpooling + +input: + +output: + +(None, 2, 40, 40, 512) + +(None, 40, 40, 512) + + +139940913934408->139940913290992 + + + + +139940913291160 + +deconv4_1: Conv2D + +input: + +output: + +(None, 40, 40, 512) + +(None, 40, 40, 256) + + +139940913290992->139940913291160 + + + + +139940913334704 + +batch_normalization_4: BatchNormalization + +input: + +output: + +(None, 40, 40, 256) + +(None, 40, 40, 256) + + +139940913291160->139940913334704 + + + + +139940912972744 + +deconv4_2: Conv2D + +input: + +output: + +(None, 40, 40, 256) + +(None, 40, 40, 256) + + +139940913334704->139940912972744 + + + + +139940912798408 + +batch_normalization_5: BatchNormalization + +input: + +output: + +(None, 40, 40, 256) + +(None, 40, 40, 256) + + +139940912972744->139940912798408 + + + + +139940912742528 + +deconv4_3: Conv2D + +input: + +output: + +(None, 40, 40, 256) + +(None, 40, 40, 256) + + +139940912798408->139940912742528 + + + + +139940912282144 + +batch_normalization_6: BatchNormalization + +input: + +output: + +(None, 40, 40, 256) + +(None, 40, 40, 256) + + +139940912742528->139940912282144 + + + + +139940912020840 + +up_sampling2d_3: UpSampling2D + +input: + +output: + +(None, 40, 40, 256) + +(None, 80, 80, 256) + + +139940912282144->139940912020840 + + + + +139940911634136 + +reshape_6: Reshape + +input: + +output: + +(None, 80, 80, 256) + +(None, 1, 80, 80, 256) + + +139940912020840->139940911634136 + + + + +139940911632456 + +concatenate_3: Concatenate + +input: + +output: + +[(None, 1, 80, 80, 256), (None, 1, 80, 80, 256)] + +(None, 2, 80, 80, 256) + + +139940912060288->139940911632456 + + + + +139940911634136->139940911632456 + + + + +139940911509232 + +unpooling_3: Unpooling + +input: + +output: + +(None, 2, 80, 80, 256) + +(None, 80, 80, 256) + + +139940911632456->139940911509232 + + + + +139940911509400 + +deconv3_1: Conv2D + +input: + +output: + +(None, 80, 80, 256) + +(None, 80, 80, 128) + + +139940911509232->139940911509400 + + + + +139940911557040 + +batch_normalization_7: BatchNormalization + +input: + +output: + +(None, 80, 80, 128) + +(None, 80, 80, 128) + + +139940911509400->139940911557040 + + + + +139940911190984 + +deconv3_2: Conv2D + +input: + +output: + +(None, 80, 80, 128) + +(None, 80, 80, 128) + + +139940911557040->139940911190984 + + + + +139940911020744 + +batch_normalization_8: BatchNormalization + +input: + +output: + +(None, 80, 80, 128) + +(None, 80, 80, 128) + + +139940911190984->139940911020744 + + + + +139940910960768 + +deconv3_3: Conv2D + +input: + +output: + +(None, 80, 80, 128) + +(None, 80, 80, 128) + + +139940911020744->139940910960768 + + + + +139940910504480 + +batch_normalization_9: BatchNormalization + +input: + +output: + +(None, 80, 80, 128) + +(None, 80, 80, 128) + + +139940910960768->139940910504480 + + + + +139940910214504 + +up_sampling2d_4: UpSampling2D + +input: + +output: + +(None, 80, 80, 128) + +(None, 160, 160, 128) + + +139940910504480->139940910214504 + + + + +139941040778880 + +reshape_8: Reshape + +input: + +output: + +(None, 160, 160, 128) + +(None, 1, 160, 160, 128) + + +139940910214504->139941040778880 + + + + +139940909840088 + +concatenate_4: Concatenate + +input: + +output: + +[(None, 1, 160, 160, 128), (None, 1, 160, 160, 128)] + +(None, 2, 160, 160, 128) + + +139940910266240->139940909840088 + + + + +139941040778880->139940909840088 + + + + +139940909838408 + +unpooling_4: Unpooling + +input: + +output: + +(None, 2, 160, 160, 128) + +(None, 160, 160, 128) + + +139940909840088->139940909838408 + + + + +139941100031336 + +deconv2_1: Conv2D + +input: + +output: + +(None, 160, 160, 128) + +(None, 160, 160, 64) + + +139940909838408->139941100031336 + + + + +139941100029768 + +batch_normalization_10: BatchNormalization + +input: + +output: + +(None, 160, 160, 64) + +(None, 160, 160, 64) + + +139941100031336->139941100029768 + + + + +139941040913824 + +deconv2_2: Conv2D + +input: + +output: + +(None, 160, 160, 64) + +(None, 160, 160, 64) + + +139941100029768->139941040913824 + + + + +139941040888072 + +batch_normalization_11: BatchNormalization + +input: + +output: + +(None, 160, 160, 64) + +(None, 160, 160, 64) + + +139941040913824->139941040888072 + + + + +139941040619704 + +up_sampling2d_5: UpSampling2D + +input: + +output: + +(None, 160, 160, 64) + +(None, 320, 320, 64) + + +139941040888072->139941040619704 + + + + +139941040714864 + +reshape_10: Reshape + +input: + +output: + +(None, 320, 320, 64) + +(None, 1, 320, 320, 64) + + +139941040619704->139941040714864 + + + + +139941040716208 + +concatenate_5: Concatenate + +input: + +output: + +[(None, 1, 320, 320, 64), (None, 1, 320, 320, 64)] + +(None, 2, 320, 320, 64) + + +139941040668008->139941040716208 + + + + +139941040714864->139941040716208 + + + + +139940908358904 + +unpooling_5: Unpooling + +input: + +output: + +(None, 2, 320, 320, 64) + +(None, 320, 320, 64) + + +139941040716208->139940908358904 + + + + +139940908359016 + +deconv1_1: Conv2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940908358904->139940908359016 + + + + +139940908416920 + +batch_normalization_12: BatchNormalization + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940908359016->139940908416920 + + + + +139940908047664 + +deconv1_2: Conv2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940908416920->139940908047664 + + + + +139940908087224 + +batch_normalization_13: BatchNormalization + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940908047664->139940908087224 + + + + +139940907475464 + +pred: Conv2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 1) + + +139940908087224->139940907475464 + + + + +139940906895624 + +concatenate_6: Concatenate + +input: + +output: + +[(None, 320, 320, 3), (None, 320, 320, 1)] + +(None, 320, 320, 4) + + +139940906600152->139940906895624 + + + + +139940907475464->139940906895624 + + + + +139940906601776 + +conv2d_1: Conv2D + +input: + +output: + +(None, 320, 320, 4) + +(None, 320, 320, 64) + + +139940906895624->139940906601776 + + + + +139940906691888 + +batch_normalization_14: BatchNormalization + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940906601776->139940906691888 + + + + +139940906892032 + +conv2d_2: Conv2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940906691888->139940906892032 + + + + +139939974580376 + +batch_normalization_15: BatchNormalization + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139940906892032->139939974580376 + + + + +139939974848752 + +conv2d_3: Conv2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139939974580376->139939974848752 + + + + +139939971826128 + +batch_normalization_16: BatchNormalization + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 64) + + +139939974848752->139939971826128 + + + + +139939971722824 + +refinement_pred: Conv2D + +input: + +output: + +(None, 320, 320, 64) + +(None, 320, 320, 1) + + +139939971826128->139939971722824 + + + + + diff --git a/segnet.py b/segnet.py index a55b706..543487c 100644 --- a/segnet.py +++ b/segnet.py @@ -65,15 +65,15 @@ def build_encoder_decoder(): xReshaped = Reshape(shape)(x) together = Concatenate(axis=1)([origReshaped, xReshaped]) x = Unpooling()(together) - x = Conv2D(512, (5, 5), activation='relu', padding='same', name='deconv5_1', + x = Conv2D(512, (kernel, kernel), activation='relu', padding='same', name='deconv5_1', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) - x = Conv2D(512, (5, 5), activation='relu', padding='same', name='deconv5_2', + x = Conv2D(512, (kernel, kernel), activation='relu', padding='same', name='deconv5_2', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) - x = Conv2D(512, (5, 5), activation='relu', padding='same', name='deconv5_3', + x = Conv2D(512, (kernel, kernel), activation='relu', padding='same', name='deconv5_3', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) @@ -85,15 +85,15 @@ def build_encoder_decoder(): xReshaped = Reshape(shape)(x) together = Concatenate(axis=1)([origReshaped, xReshaped]) x = Unpooling()(together) - x = Conv2D(256, (5, 5), activation='relu', padding='same', name='deconv4_1', + x = Conv2D(256, (kernel, kernel), activation='relu', padding='same', name='deconv4_1', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) - x = Conv2D(256, (5, 5), activation='relu', padding='same', name='deconv4_2', + x = Conv2D(256, (kernel, kernel), activation='relu', padding='same', name='deconv4_2', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) - x = Conv2D(256, (5, 5), activation='relu', padding='same', name='deconv4_3', + x = Conv2D(256, (kernel, kernel), activation='relu', padding='same', name='deconv4_3', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) @@ -105,15 +105,15 @@ def build_encoder_decoder(): xReshaped = Reshape(shape)(x) together = Concatenate(axis=1)([origReshaped, xReshaped]) x = Unpooling()(together) - x = Conv2D(128, (5, 5), activation='relu', padding='same', name='deconv3_1', + x = Conv2D(128, (kernel, kernel), activation='relu', padding='same', name='deconv3_1', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) - x = Conv2D(128, (5, 5), activation='relu', padding='same', name='deconv3_2', + x = Conv2D(128, (kernel, kernel), activation='relu', padding='same', name='deconv3_2', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) - x = Conv2D(128, (5, 5), activation='relu', padding='same', name='deconv3_3', + x = Conv2D(128, (kernel, kernel), activation='relu', padding='same', name='deconv3_3', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) @@ -125,11 +125,11 @@ def build_encoder_decoder(): xReshaped = Reshape(shape)(x) together = Concatenate(axis=1)([origReshaped, xReshaped]) x = Unpooling()(together) - x = Conv2D(64, (5, 5), activation='relu', padding='same', name='deconv2_1', + x = Conv2D(64, (kernel, kernel), activation='relu', padding='same', name='deconv2_1', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) - x = Conv2D(64, (5, 5), activation='relu', padding='same', name='deconv2_2', + x = Conv2D(64, (kernel, kernel), activation='relu', padding='same', name='deconv2_2', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) @@ -141,16 +141,16 @@ def build_encoder_decoder(): xReshaped = Reshape(shape)(x) together = Concatenate(axis=1)([origReshaped, xReshaped]) x = Unpooling()(together) - x = Conv2D(64, (5, 5), activation='relu', padding='same', name='deconv1_1', + x = Conv2D(64, (kernel, kernel), activation='relu', padding='same', name='deconv1_1', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) - x = Conv2D(64, (5, 5), activation='relu', padding='same', name='deconv1_2', + x = Conv2D(64, (kernel, kernel), activation='relu', padding='same', name='deconv1_2', kernel_initializer='he_normal', bias_initializer='zeros')(x) x = BatchNormalization()(x) - x = Conv2D(1, (5, 5), activation='sigmoid', padding='same', name='pred', kernel_initializer='he_normal', + x = Conv2D(1, (kernel, kernel), activation='sigmoid', padding='same', name='pred', kernel_initializer='he_normal', bias_initializer='zeros')(x) model = Model(inputs=input_tensor, outputs=x) diff --git a/train.py b/train.py index 9741d9a..48ba1a9 100644 --- a/train.py +++ b/train.py @@ -76,5 +76,5 @@ def on_epoch_end(self, epoch, logs=None): verbose=1, callbacks=callbacks, use_multiprocessing=True, - workers=int(get_available_cpus() * 0.8) + workers=int(get_available_cpus() / 2) )