Skip to content

Commit acb1972

Browse files
authored
Merge pull request #10 from Yoctol/seq2seq-modify
Seq2seq modify
2 parents 311cd49 + 75411cc commit acb1972

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

seq2vec/seq2seq_auto_encoder.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
import numpy as np
33

44
from keras.preprocessing.sequence import pad_sequences
5+
from keras.optimizers import RMSprop
56
from keras.layers import Input, LSTM, RepeatVector
7+
from keras.layers import Dropout
68
from keras.models import Model
79

810
from yoctol_utils.hash import consistent_hash
@@ -14,12 +16,18 @@
1416
def _create_single_layer_seq2seq_model(max_length, max_index, latent_size):
1517
inputs = Input(shape=(max_length, max_index))
1618
encoded = LSTM(latent_size)(inputs)
17-
decoded = RepeatVector(max_length)(encoded)
19+
decoded = Dropout(0.3)(encoded)
20+
decoded = RepeatVector(max_length)(decoded)
1821
decoded = LSTM(max_index, return_sequences=True)(decoded)
1922
model = Model(inputs, decoded)
2023
encoder = Model(inputs, encoded)
2124

22-
model.compile(loss='categorical_crossentropy', optimizer='Adam')
25+
optimizer = RMSprop(
26+
lr=0.0001,
27+
rho=0.95,
28+
decay=0.1,
29+
)
30+
model.compile(loss='categorical_crossentropy', optimizer=optimizer)
2331
return model, encoder
2432

2533

@@ -80,9 +88,14 @@ def _generate_padding_array(self, seqs):
8088
array.append(np_seq)
8189
return np.array(array)
8290

83-
def fit(self, train_seqs):
91+
def fit(self, train_seqs, verbose=2, nb_epoch=10, validation_split=0.0):
8492
train_x = self._generate_padding_array(train_seqs)
85-
self.model.fit(train_x, train_x, nb_epoch=10)
93+
self.model.fit(
94+
train_x, train_x,
95+
verbose=verbose,
96+
nb_epoch=nb_epoch,
97+
validation_split=validation_split,
98+
)
8699

87100
def transform(self, seqs):
88101
test_x = self._generate_padding_array(seqs)

0 commit comments

Comments
 (0)