Diff of /modelIL.py [000000] .. [33d58f]

Switch to unified view

a b/modelIL.py
1
import numpy as np
2
import os
3
import skimage.io as io
4
import skimage.transform as trans
5
import numpy as np
6
from keras.models import *
7
from keras.layers import *
8
from keras.optimizers import *
9
from keras.callbacks import ModelCheckpoint, LearningRateScheduler
10
from keras import backend as keras
11
import tensorflow as tf
12
from keras import initializers
13
from keras import regularizers
14
15
16
def fu(pretrained_weights=None, input_size=(256, 256, 3)):
17
    inputs = Input(input_size)
18
    paddings = tf.constant([[0, 0], [1, 1], [1, 1], [0, 0], [0, 0]])  # only pads dim 2 and 3 (h and w)
19
20
    [ inputtemp, inputspet,inputsct] = Lambda(tf.split, arguments={'axis': 3, 'num_or_size_splits': 3})(inputs)
21
22
    inputs_temp = Lambda(tf.add, arguments={'y': (inputsct)})(inputspet)
23
    conv1 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(inputs_temp)
24
    conv1 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv1)
25
    pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)
26
    conv2 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool1)
27
    conv2 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv2)
28
    pool2 = MaxPooling2D(pool_size=(2, 2))(conv2)
29
    conv3 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool2)
30
    conv3 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv3)
31
    pool3 = MaxPooling2D(pool_size=(2, 2))(conv3)
32
    conv4 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool3)
33
    conv4 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv4)
34
    drop4 = Dropout(0.5)(conv4)
35
    pool4 = MaxPooling2D(pool_size=(2, 2))(conv4)
36
37
    up5 = Conv2D(64, 2, activation='relu', padding='same', kernel_initializer='he_normal')(
38
        UpSampling2D(size=(2, 2))(pool4))
39
    conv5 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(up5)
40
    conv5 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv5)
41
42
43
    up6 = Conv2D(64, 2, activation='relu', padding='same', kernel_initializer='he_normal')(
44
        UpSampling2D(size=(2, 2))(conv5))
45
    conv6 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(up6)
46
    conv6 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv6)
47
48
49
    up7 = Conv2D(64, 2, activation='relu', padding='same', kernel_initializer='he_normal')(
50
        UpSampling2D(size=(2, 2))(conv6))
51
52
    conv7 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(up7)
53
    conv7 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv7)
54
55
56
    up8 = Conv2D(64, 2, activation='relu', padding='same', kernel_initializer='he_normal')(
57
        UpSampling2D(size=(2, 2))(conv7))
58
59
    conv8 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(up8)
60
    conv8 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv8)
61
62
    conv9 = Conv2D(4, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv8)
63
    conv10 = Conv2D(1, 1, activation='sigmoid')(conv9)
64
65
    model = Model(input=inputs, output=conv10)
66
67
    model.compile(optimizer=Adam(lr=1e-4), loss='binary_crossentropy', metrics=['accuracy'])
68
69
70
    if (pretrained_weights):
71
        model.load_weights(pretrained_weights)
72
73
    return model
74
75
def expand_dim_backend(x,dim):
76
    xe = K.expand_dims(x, dim)
77
    return xe