Neural network 基于嵌入的Keras-LSTM语言模型
我正在用keras做一个语言模型 基本上,我的词汇量N约为30.000,我已经在其上训练了word2vec,因此我使用嵌入,然后使用LSTM,然后使用完全连接的层和softmax预测下一个单词。 我的模型编写如下:Neural network 基于嵌入的Keras-LSTM语言模型,neural-network,keras,lstm,Neural Network,Keras,Lstm,我正在用keras做一个语言模型 基本上,我的词汇量N约为30.000,我已经在其上训练了word2vec,因此我使用嵌入,然后使用LSTM,然后使用完全连接的层和softmax预测下一个单词。 我的模型编写如下: EMBEDDING_DIM = 256 embedding_layer = Embedding(N,EMBEDDING_DIM,weights=[embeddings], trainable=False) model = Sequential() model.add(embeddi
EMBEDDING_DIM = 256
embedding_layer = Embedding(N,EMBEDDING_DIM,weights=[embeddings],
trainable=False)
model = Sequential()
model.add(embedding_layer)
model.add(LSTM(EMBEDDING_DIM))
model.add(Dense(N))
model.add(Activation('softmax'))
model.compile(loss="categorical_crossentropy", optimizer="rmsprop")
我有两个问题:
谢谢!我只能肯定地回答第一个问题: 是的,LSTM层的输出是最后一个隐藏单元。如果给它参数
return\u sequences=True
,它只返回所有隐藏状态。默认情况下,它设置为False
对于第二个问题,我只能说,我试图预测单词的一个热向量表示的嵌入,但它给了我糟糕的结果。
单词仍然是分类变量,即使我们可以用连续表示法来近似它们。
出于这个原因,人们投入了大量的精力来开发分层的Softmax