Gensim Doc2Vec为模型生成巨大的文件

ida*_*ida 3 python gensim word2vec semantics doc2vec

我正在尝试从gensim包运行doc2vec库。我的问题是,当我训练并保存模型时,模型文件很大(2.5 GB),我尝试使用此行:

model.estimate_memory()
Run Code Online (Sandbox Code Playgroud)

但这并没有改变任何东西。我也尝试过更改max_vocab_size以减少空间。但是没有运气。有人可以帮我解决这个问题吗?

goj*_*omo 5

Doc2Vec模型可能很大。特别是,任何使用的字向量在每个维度上将使用4个字节,乘以模型的两层。因此,具有200,000个单词词汇量的300维模型将仅用于vectors数组本身:

200,000 vectors * 300 dimensions * 4 bytes/float * 2 layers = 480MB
Run Code Online (Sandbox Code Playgroud)

(用于存储词汇信息的词典会产生额外的开销。)

任何文档向量还将在每个维度中使用4个字节。因此,如果您为一百万个doc-tag训练向量,则该模型将仅用于doc-vectors数组:

1,000,000 vectors * 300 dimensions * 4 bytes/float = 2.4GB
Run Code Online (Sandbox Code Playgroud)

(如果您使用任意字符串标记来命名doc-vector,则将产生额外的开销。)

要在加载时使用较少的内存(这也将导致较小的存储文件),可以使用较小的词汇量,训练较少的doc-vecs或使用较小的向量大小。

如果您仅出于某些狭purposes目的需要模型,则可以在培训后将其他部分扔掉–但这需要了解模型内部/源代码以及您的特定需求,从而得到一个在其他许多常规操作中已损坏(并可能引发错误)。