我在机器翻译模型中添加了一个关注层
model.add(AttentionDecoder(tar_timesteps, tar_vocab))
我将模型应用于144K(135K火车+ 9K测试),30历时的葡萄牙语和中文语料库。与没有引起注意的模型相比,其他条件保持不变,整个BLEU-1 / 2/3/4列车数据增加了20%,但测试数据几乎没有变化。我想知道我的实现是否有任何错误。
def define_model(src_vocab, tar_vocab, src_timesteps, tar_timesteps, n_units):
model = Sequential()
model.add(Embedding(src_vocab, n_units, input_length=src_timesteps, mask_zero=True))
model.add(Bidirectional(LSTM(n_units)))
model.add(Dropout(0.2))
model.add(RepeatVector(tar_timesteps))
model.add(AttentionDecoder(tar_timesteps, tar_vocab))
model.add(Bidirectional(LSTM(n_units, return_sequences=True)))
model.add(Dropout(0.2))
model.add(TimeDistributed(Dense(tar_vocab, activation='softmax')))
return model