我正在尝试按照https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html中的指导,在Keras中使用词级seq到seq模型实现英语到孟加拉语的翻译。
我在训练模型中使用了Embedding层进行编码器输入和解码器输入,并对目标数据使用了一种热编码。 训练模型可以很好地工作,并且可以使用coder_input和decoder_input样本进行良好的预测。但是,推理模型的性能不好。它产生的结果远非准确的。
我觉得我在解码器推理模型中使用嵌入层可能不正确。有什么建议/建议吗?
以下是代码段。
encoder_model = Model(encoder_inputs, encoder_states)
decoder_state_input_h = Input(shape=(latent_dim,))
decoder_state_input_c = Input(shape=(latent_dim,))
decoder_states_inputs = [decoder_state_input_h, decoder_state_input_c]
dec_embed_out = Embedding(num_decoder_tokens, latent_dim)(decoder_inputs)
decoder_outputs, dstate_h, dstate_c = decoder_lstm(dec_embed_out, initial_state=decoder_states_inputs)
decoder_states = [dstate_h, dstate_c]
decoder_dense_outputs = decoder_dense(decoder_outputs)
decoder_model = Model(
[decoder_inputs] + decoder_states_inputs,
[decoder_dense_outputs] + decoder_states)
decoder_model.summary()