Machine Translation with Keras
Thushan Ganegedara
Data Scientist and Author
TimeDistributed
and Dense
layers.Encoder
en_inputs = Input(shape=(en_len, en_vocab))
en_gru = GRU(hsize, return_state=True)
en_out, en_state = en_gru(en_inputs)
Decoder
de_inputs = RepeatVector(fr_len)(en_state)
de_gru = GRU(hsize, return_sequences=True)
de_out = de_gru(de_inputs, initial_state=en_state)
de_dense = keras.layers.Dense(fr_vocab, activation='softmax')
de_dense_time = keras.layers.TimeDistributed(de_dense)
de_pred = de_seq_dense(de_out)
Defining the full model
nmt = keras.models.Model(inputs=en_inputs, outputs=de_pred)
Compiling the model
nmt.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['acc'])
Machine Translation with Keras