bidirectional part

This commit is contained in:
codekansas committed 2016-05-06 13:06:31 -04:00
1 parent 3180c4dbc5
commit e61141e892
1 file changed
+12 -6
+12 -6
View File
@@ -3,7 +3,7 @@ import numpy as np
import os
from keras.engine import Input
from keras.layers import LSTM, RepeatVector, TimeDistributed, Dense, Activation
from keras.layers import LSTM, RepeatVector, TimeDistributed, Dense, Activation, Masking, merge
from keras.models import Model
# can remove this depending on ide...
@@ -53,23 +53,29 @@ class InsuranceQA:
def get_model(question_maxlen, answer_maxlen, vocab_len, n_hidden):
answer = Input(shape=(answer_maxlen, vocab_len))
# answer = Masking(mask_value=0.)(answer)
masked = Masking(mask_value=0.)(answer)
# encoder rnn
encode_rnn = LSTM(n_hidden, return_sequences=True)(answer)
encode_rnn = LSTM(n_hidden, return_sequences=True)(encode_rnn)
encode_rnn = LSTM(n_hidden, return_sequences=True)(masked)
encode_rnn = LSTM(n_hidden, return_sequences=False)(encode_rnn)
encode_brnn = LSTM(n_hidden, return_sequences=True, go_backwards=True)(masked)
encode_brnn = LSTM(n_hidden, return_sequences=False, go_backwards=True)(encode_brnn)
# repeat it maxlen times
repeat_encoding = RepeatVector(question_maxlen)(encode_rnn)
# decoder rnn
decode_rnn = LSTM(n_hidden, return_sequences=True)(repeat_encoding)
decode_rnn = LSTM(n_hidden, return_sequences=True)(decode_rnn)
decode_rnn = LSTM(n_hidden, return_sequences=True)(decode_rnn)
decode_brnn = LSTM(n_hidden, return_sequences=True, go_backwards=True)(repeat_encoding)
decode_brnn = LSTM(n_hidden, return_sequences=True, go_backwards=True)(decode_brnn)
merged_output = merge([decode_rnn, decode_brnn], mode='concat', concat_axis=-1)
# output
dense = TimeDistributed(Dense(vocab_len))(decode_rnn)
dense = TimeDistributed(Dense(vocab_len))(merged_output)
softmax = Activation('softmax')(dense)
# compile the model