Python Gensim Word2vec存储属性syn0norm
我正在尝试将word2vec用于一个项目,经过培训后,我得到:Python Gensim Word2vec存储属性syn0norm,python,gensim,word2vec,Python,Gensim,Word2vec,我正在尝试将word2vec用于一个项目,经过培训后,我得到: INFO : not storing attribute syn0norm 有没有办法保存syn0norm 我该怎么做?这很好——您不需要存储数组syn0norm 它是在init_sims过程中计算的,并且只在需要的基础上进行计算。训练后,它实际上没有定义,所以没有什么可训练的 当您查询模型时(例如most_Simon),它将调用init_sims,检查syn0norm是否已定义。如果没有,则用以下行指定: self.syn0no
INFO : not storing attribute syn0norm
有没有办法保存syn0norm
我该怎么做?这很好——您不需要存储数组syn0norm
它是在init_sims过程中计算的,并且只在需要的基础上进行计算。训练后,它实际上没有定义,所以没有什么可训练的
当您查询模型时(例如most_Simon),它将调用init_sims,检查syn0norm是否已定义。如果没有,则用以下行指定:
self.syn0norm = (self.syn0 / sqrt((self.syn0 ** 2).sum(-1))[..., newaxis]).astype(REAL)
编辑:
查看代码(其他内容)后,我发现您可以指定是否要保存syn0norm——有一个ignore设置,默认为['syn0norm'],因此以下内容将保存所有内容:
In [239]: model.save('test',ignore=[])
2015-03-17 09:07:54,733 : INFO : saving Word2Vec object under test, separately None
2015-03-17 09:07:54,734 : INFO : storing numpy array 'syn0' to test.syn0.npy
2015-03-17 09:08:15,908 : INFO : storing numpy array 'table' to test.table.npy
2015-03-17 09:08:17,908 : INFO : storing numpy array 'syn1neg' to test.syn1neg.npy
2015-03-17 09:08:35,037 : INFO : storing numpy array 'syn1' to test.syn1.npy
2015-03-17 09:09:03,766 : INFO : storing numpy array 'syn0norm' to test.syn0norm.npy
问题是,计算时间通常比保存和重新加载要短。我不确定自己是否完全理解了它。对我来说,
.syn0.npy
文件会自动保存,如果训练语料库足够大,即使我没有指定任何内容。该文件是必需的还是只是同一型号的附加序列化?