-
Notifications
You must be signed in to change notification settings - Fork 2
/
jimmy.py
69 lines (55 loc) · 3.27 KB
/
jimmy.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
from cnn_model import *
from label_cnn import LabelCNN
from keras.layers import Activation, Concatenate
class VEGGG(CnnModel):
def __init__(self, model_name):
super().__init__()
self.MODEL_NAME = model_name
def build_model(self):
layers = BasicLayers(relu_version='parametric')
input_tensor = Input(shape=self.INPUT_SHAPE)
x = input_tensor
x = layers.cbr(x, 32, kernel_size=(3, 3), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x = layers.cbr(x, 64, kernel_size=(3, 3), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x = layers.cbr(x, 128, kernel_size=(3, 3), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x = layers.cbr(x, 256, kernel_size=(3, 3), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x = layers.cbr(x, 512, kernel_size=(3, 3), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x = layers.cbr(x, 512, kernel_size=(3, 3), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x2 = layers._flatten(x)
x3 = layers._dense(x2, 2 * ((self.CONTEXT * self.CONTEXT) // (self.PATCH_SIZE * self.PATCH_SIZE)))
x3 = layers._dropout(x3, rate=0.5)
x3 = layers._act_fun(x3)
x4 = layers._dense(x3, self.NB_CLASSES)
x5 = Activation('softmax')(x4)
self.model = Model(inputs=input_tensor, outputs=x5)
class Simple(LabelCNN):
def __init__(self, model_name):
super().__init__(image_size=64)
self.MODEL_NAME = model_name
def build_model(self):
layers = BasicLayers(relu_version='leaky')
input_tensor = Input(shape=self.INPUT_SHAPE)
x = input_tensor
x = layers.cbr(x, 64, kernel_size=(5, 5), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x = layers.cbr(x, 128, kernel_size=(3, 3), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x = layers.cbr(x, 256, kernel_size=(3, 3), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x = layers.cbr(x, 512, kernel_size=(3, 3), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x = layers.cbr(x, 512, kernel_size=(3, 3), strides=(2, 2), dilation_rate=(1, 1), padding='same')
x = layers._max_pool(x, pool=(2, 2), strides=(2, 2), padding='same')
x2 = layers._flatten(x)
x3 = layers._dense(x2, 2 * 256)
x3 = layers._dropout(x3, rate=0.5)
x3 = layers._act_fun(x3)
x4 = layers._dense(x3, self.NB_CLASSES)
x5 = Activation('softmax')(x4)
self.model = Model(inputs=input_tensor, outputs=x5)