python - Gensim Word2vec 存储属性 syn0norm

标签 python gensim word2vec

我正在尝试将 word2vec 用于一个项目,经过培训我得到:

INFO : not storing attribute syn0norm

有什么方法可以保存 syn0norm

我该怎么做?

最佳答案

这很好——您不需要存储数组 syn0norm。

它是在 init_sims 过程中计算的,并且仅在需要时计算。训练后,它实际上没有定义,所以没有什么可训练的。

当您查询模型(例如 most_similar)时,它会调用 init_sims 检查是否定义了 syn0norm。如果不是,它会分配给它以下行:

self.syn0norm = (self.syn0 / sqrt((self.syn0 ** 2).sum(-1))[..., newaxis]).astype(REAL)

编辑:

在查看代码(对于其他事情)后,我看到您可以指定是否要保存 syn0norm —— 有一个默认设置为 ['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

问题是,计算通常比保存和重新加载花费的时间更少。

关于python - Gensim Word2vec 存储属性 syn0norm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28508548/

相关文章:

python - Gensim 与向量最相似的词

python - 如何转换Tensorflow循环中的循环?

python - 类型 - 函数返回值类型与表达式的类型相同

python - word2vec向量[gensim库]的 "size"是什么意思?

gensim - 如何在 Gensim 中将 Word2VecKeyedVectors 转换为 FastText 或 Word2Vec 对象?

python - 如何检查 word2vec 训练模型中是否存在 key

python - 如何在Python中按条件应用聚类

python - Google 趋势 - 配额限制 - IP 地址更改器

python - 解释跨文档单词的 TF-IDF 分数总和

python - 在gensim中创建一个新的矢量模型