1
一段时间前,我尝试着构建了一个返回单词反转结果的系统,即当输入是“ the quick brown fox”时,相应的输出是“ eht kciuq nworb xof”。这个想法类似于标准的seq2seq模型,唯一的区别是我拥有无限的训练数据。 因此,我在Keras中构建了它:
model = Sequential()
model.add(LSTM(512, input_shape=(maxlen, nb_chars),
return_sequences=False))
model.add(RepeatVector(maxlen))
model.add(LSTM(512, return_sequences=True))
model.add(TimeDistributed(Dense(nb_chars)))
model.add(Activation("softmax"))
简单说一下我的想法,第一个LSTM(编码器)写出整个输入“句子”的表示形式(在我的情况下为最大nb_chars个字符的字符串)。 然后,将这种表示形式输入到第二个LSTM(解码器)的每个输入,将其每个输出输入到密集(完全连接)层,从而找到最可能的字符。
收藏