-
Notifications
You must be signed in to change notification settings - Fork 3
/
dae_model.py
31 lines (22 loc) · 1.01 KB
/
dae_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
from keras.layers import Input, Dense
from keras.models import Model
class DAE(object):
def __init__(
self,
num_words,
encoder_layers,
decoder_layers):
self.num_words = num_words
self.encoder_layers = encoder_layers
self.decoder_layers = decoder_layers
self.input_shape = Input(shape=(self.num_words,))
# encoder's layers
self.encoded = Dense(self.encoder_layers[0], activation='relu')(self.input_shape)
for encoder_layer in self.encoder_layers[1:]:
self.encoded = Dense(encoder_layer, activation='relu')(self.encoded)
# decoder's layers
self.decoded = Dense(self.decoder_layers[0], activation='relu')(self.encoded)
for decoder_layer in self.decoder_layers[1:]:
self.decoded = Dense(decoder_layer, activation='relu')(self.decoded)
self.decoded = Dense(num_words, activation='sigmoid')(self.decoded)
self.model = Model(self.input_shape, self.decoded)