Python 如何解释word2vec权重的形状?

Python 如何解释word2vec权重的形状?,python,neural-network,keras,deep-learning,word2vec,Python,Neural Network,Keras,Deep Learning,Word2vec,我试图使用word2vec模型中的权重作为keras中神经网络嵌入层的权重。我下面介绍的应用程序: word_model = gensim.models.Word2Vec(sentences, size=100, min_count=1, window=5, iter=100) pretrained_weights = word_model.wv.syn0 keras_model.add(Embedding(input_dim=v

我试图使用word2vec模型中的权重作为keras中神经网络嵌入层的权重。我下面介绍的应用程序:

word_model = gensim.models.Word2Vec(sentences, size=100, min_count=1, 
                                window=5, iter=100)
pretrained_weights = word_model.wv.syn0
keras_model.add(Embedding(input_dim=vocab_size, output_dim=emdedding_size, 
                weights=[pretrained_weights]))
我知道word2vec为每个单词创建向量,在本例中大小为100

pretrained_weights.shape
返回(1350100),但我不确定1350数字的含义

keras_model.predict(np.array([word_model.wv.vocab['test'].index]))
返回一个大小为1350的向量,我不确定如何解释(模型训练的响应是大小为7200的向量)


我可以运行示例代码并获得很好的结果,但我想知道它为什么有效。

您已经给出了答案。每个单词都被嵌入到大小为100的固定向量中。在你的例子中,1350是词汇量的大小。至少这是
嵌入层所期望的。该矩阵的每一行(13501000)对应一个单词。
Embedding
层只对给定的单词索引
i
加权[i]
,并返回行


当你预测模型的输出时,一个单词可能是你词汇表中1350个单词中的一个,因此你得到一个1350大小的向量,很可能是softmax的概率分布,告诉你它可能是哪个单词。

尽管文本中有3500多个独特的单词。它只是为1350个单词做向量吗?我刚刚意识到我看到的结果是错误的。模型训练的文本只有1350个单词,所以这个结果是有意义的。