Skip to content

Instantly share code, notes, and snippets.

@brunojus
Last active April 13, 2020 20:09
Show Gist options
  • Save brunojus/1a99b9d306b5b2f6853964fc972ebac3 to your computer and use it in GitHub Desktop.
Save brunojus/1a99b9d306b5b2f6853964fc972ebac3 to your computer and use it in GitHub Desktop.
from keras.models import *
from keras.layers import *
from keras.optimizers import *
IMAGE_SIZE=500
def network(input_size=(IMAGE_SIZE,IMAGE_SIZE,3)):
#input layer
inputs = Input(input_size)
#block 1 convnet
zero = ZeroPadding2D(padding=(100, 100), data_format=None)(inputs)
conv1 = Conv2D(64, 3, kernel_initializer='he_normal', activation='relu')(zero)
conv1_1 = Conv2D(64, 3, kernel_initializer='he_normal', activation='relu',padding='same')(conv1)
pool1 = MaxPooling2D(pool_size=(2, 2))(conv1_1)
#block 2 convnet
conv2_1 = Conv2D(128, 3, kernel_initializer='he_normal', activation='relu',padding='same')(pool1)
conv2_2 = Conv2D(128, 3, kernel_initializer='he_normal', activation='relu',padding='same')(conv2_1)
zero2 = ZeroPadding2D(padding=(1, 1), data_format=None)(conv2_2)
pool2 = MaxPooling2D(pool_size=(2, 2))(zero2)
#block 3 convnet
conv3_1 = Conv2D(256, 3, kernel_initializer='he_normal', activation='relu',padding='same')(pool2)
conv3_2 = Conv2D(256, 3, kernel_initializer='he_normal', activation='relu',padding='same')(conv3_1)
conv3_3 = Conv2D(256, 3, kernel_initializer='he_normal', activation='relu',padding='same')(conv3_2)
zero3 = ZeroPadding2D(padding=(1, 1), data_format=None)(conv3_3)
pool3 = MaxPooling2D(pool_size=(2, 2))(zero3)
#block 4 convnet
conv4_1 = Conv2D(512, 3, kernel_initializer='he_normal', activation='relu',padding='same')(pool3)
conv4_2 = Conv2D(512, 3, kernel_initializer='he_normal', activation='relu',padding='same')(conv4_1)
conv4_3 = Conv2D(512, 3, kernel_initializer='he_normal', activation='relu',padding='same')(conv4_2)
pool4 = MaxPooling2D(pool_size=(2, 2))(conv4_3)
#block 5 convnet
conv5_1 = Conv2D(512, 3, kernel_initializer='he_normal', activation='relu',padding='same')(pool4)
conv5_2 = Conv2D(512, 3, kernel_initializer='he_normal', activation='relu',padding='same')(conv5_1)
conv5_3 = Conv2D(512, 3, kernel_initializer='he_normal', activation='relu',padding='same')(conv5_2)
pool5 = MaxPooling2D(pool_size=(2, 2))(conv5_3)
#block 6 convnet
conv6 = Conv2D(4096, 7, kernel_initializer='he_normal', activation='relu')(pool5)
#dropout
dropout1 = Dropout(0.5)(conv6)
#block 7 convnet
conv7 = Conv2D(4096, 3, kernel_initializer='he_normal', activation='relu',padding='same')(dropout1)
dropout2 = Dropout(0.5)(conv7)
#block 8 convnet
conv8 = Conv2D(3, 3, kernel_initializer='he_normal', activation='relu',padding='same')(pool2)
#block 9 convnet
conv9 = Conv2D(3, 3, kernel_initializer='he_normal', activation='relu',padding='same')(pool3)
#block 10 convnet
conv10 = Conv2D(3, 3, kernel_initializer='he_normal', activation='relu',padding='same')(pool4)
#block 11 convnet
conv11 = Conv2D(3, 3, kernel_initializer='he_normal', activation='relu',padding='same')(dropout2)
#Deconv1
upSample1 = UpSampling2D(size=(2, 2))(dropout2)
deconv1 = Conv2DTranspose(3,3)(upSample1)
#fuse1
fuse1 = concatenate([deconv1,conv10], axis=2)
model = Model(input=inputs, output=fuse1)
model.summary()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment