-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathnew_model.py
68 lines (57 loc) · 3.71 KB
/
new_model.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
68
# The model is the DF model by Sirinam et al
from keras.models import Model
from keras.layers import Dense
from keras.layers import Input
from keras.layers import Activation
from keras.layers import ELU
from keras.layers import Conv1D
from keras.layers import MaxPooling1D
from keras.layers import Dropout
from keras.layers.core import Flatten
def create_model(input_shape=None, emb_size=None, model_name=''):
# -----------------Entry flow -----------------
input_data = Input(shape=input_shape)
filter_num = ['None', 32, 64, 128, 256]
kernel_size = ['None', 8, 8, 8, 8]
conv_stride_size = ['None', 1, 1, 1, 1]
pool_stride_size = ['None', 4, 4, 4, 4]
pool_size = ['None', 8, 8, 8, 8]
model = Conv1D(filters=filter_num[1], kernel_size=kernel_size[1],
strides=conv_stride_size[1], padding='same', name='block1_conv1'+'_'+model_name)(input_data)
model = ELU(alpha=1.0, name='block1_adv_act1'+'_'+model_name)(model)
model = Conv1D(filters=filter_num[1], kernel_size=kernel_size[1],
strides=conv_stride_size[1], padding='same', name='block1_conv2'+'_'+model_name)(model)
model = ELU(alpha=1.0, name='block1_adv_act2'+'_'+model_name)(model)
model = MaxPooling1D(pool_size=pool_size[1], strides=pool_stride_size[1],
padding='same', name='block1_pool'+'_'+model_name)(model)
model = Dropout(0.1, name='block1_dropout'+'_'+model_name)(model)
model = Conv1D(filters=filter_num[2], kernel_size=kernel_size[2],
strides=conv_stride_size[2], padding='same', name='block2_conv1'+'_'+model_name)(model)
model = Activation('relu', name='block2_act1'+'_'+model_name)(model)
model = Conv1D(filters=filter_num[2], kernel_size=kernel_size[2],
strides=conv_stride_size[2], padding='same', name='block2_conv2'+'_'+model_name)(model)
model = Activation('relu', name='block2_act2'+'_'+model_name)(model)
model = MaxPooling1D(pool_size=pool_size[2], strides=pool_stride_size[3],
padding='same', name='block2_pool'+'_'+model_name)(model)
model = Dropout(0.1, name='block2_dropout'+'_'+model_name)(model)
model = Conv1D(filters=filter_num[3], kernel_size=kernel_size[3],
strides=conv_stride_size[3], padding='same', name='block3_conv1'+'_'+model_name)(model)
model = Activation('relu', name='block3_act1'+'_'+model_name)(model)
model = Conv1D(filters=filter_num[3], kernel_size=kernel_size[3],
strides=conv_stride_size[3], padding='same', name='block3_conv2'+'_'+model_name)(model)
model = Activation('relu', name='block3_act2'+'_'+model_name)(model)
model = MaxPooling1D(pool_size=pool_size[3], strides=pool_stride_size[3],
padding='same', name='block3_pool'+'_'+model_name)(model)
model = Dropout(0.1, name='block3_dropout'+'_'+model_name)(model)
model = Conv1D(filters=filter_num[4], kernel_size=kernel_size[4],
strides=conv_stride_size[4], padding='same', name='block4_conv1'+'_'+model_name)(model)
model = Activation('relu', name='block4_act1'+'_'+model_name)(model)
model = Conv1D(filters=filter_num[4], kernel_size=kernel_size[4],
strides=conv_stride_size[4], padding='same', name='block4_conv2'+'_'+model_name)(model)
model = Activation('relu', name='block4_act2'+'_'+model_name)(model)
model = MaxPooling1D(pool_size=pool_size[4], strides=pool_stride_size[4],
padding='same', name='block4_pool'+'_'+model_name)(model)
output = Flatten()(model)
dense_layer = Dense(emb_size, name='FeaturesVec'+'_'+model_name)(output)
shared_conv2 = Model(inputs=input_data, outputs=dense_layer, name=model_name)
return shared_conv2