-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild_model_classifier.py
More file actions
68 lines (45 loc) · 2.13 KB
/
build_model_classifier.py
File metadata and controls
68 lines (45 loc) · 2.13 KB
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
import tensorflow as tf
from tensorflow.keras import layers, models
def build_model_classifier_1(input_shape):
dropout = 0.1
input_layer = layers.Input(shape=input_shape)
flatten_layer = layers.Flatten()(input_layer)
dense_layer = layers.Dense(100, activation='relu')(flatten_layer)
dense_layer = layers.Dropout(dropout)(dense_layer)
dense_layer = layers.Dense(100, activation='relu')(dense_layer)
dense_layer = layers.Dropout(dropout)(dense_layer)
dense_layer = layers.Dense(100, activation='relu')(dense_layer)
output_layer = layers.Dense(4)(dense_layer)
model = tf.keras.Model(inputs=input_layer, outputs=output_layer)
return model
def build_model_classifier_2(input_shape):
input_layer = layers.Input(shape=input_shape)
conv_layer = layers.Conv1D(4, 3, padding='same', activation='relu')(input_layer)
pool_layer = layers.MaxPooling1D()(conv_layer)
conv_layer = layers.Conv1D(8, 3, padding='same', activation='relu')(pool_layer)
pool_layer = layers.MaxPooling1D()(conv_layer)
flatten_layer = layers.Flatten()(pool_layer)
dense_layer = layers.Dense(100, activation='relu')(flatten_layer)
dense_layer = layers.Dense(100, activation='relu')(dense_layer)
output_layer = layers.Dense(4)(dense_layer)
model = tf.keras.Model(inputs=input_layer, outputs=output_layer)
return model
def build_model_classifier_3(settings_dict):
input_shape = settings_dict['input_shape']
conv_blocks_list = settings_dict['conv_blocks_list']
dense_blocs_list = settings_dict['dense_blocs_list']
labels_nmb = settings_dict['labels_nmb']
input_layer = layers.Input(shape=input_shape)
last_layer = input_layer
for conv_block in conv_blocks_list:
conv_layer = layers.Conv1D(conv_block, 3, padding='same', activation='relu')(last_layer)
pool_layer = layers.MaxPooling1D()(conv_layer)
last_layer = pool_layer
flatten_layer = layers.Flatten()(last_layer)
last_layer = flatten_layer
for dense_block in dense_blocs_list:
dense_layer = layers.Dense(dense_block, activation='relu')(last_layer)
last_layer = dense_layer
output_layer = layers.Dense(labels_nmb)(last_layer)
model = tf.keras.Model(inputs=input_layer, outputs=output_layer)
return model