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



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

model.estimate_memory()

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

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

200,000 vectors * 300 dimensions * 4 bytes/float * 2 layers = 480MB

(存储词汇信息的字典将产生额外的开销。

任何文档向量也将使用每个字节 4 个字节。因此,如果您为一百万个文档标签训练向量,该模型将仅用于文档向量数组:

1,000,000 vectors * 300 dimensions * 4 bytes/float = 2.4GB

(如果您使用任意字符串标签来命名文档向量,则会有额外的开销。

要在加载时使用更少的内存(这也将导致较小的存储文件(,您可以使用较小的词汇表、训练较少的 doc-vec 或使用较小的矢量大小。

如果你只需要模型用于某些狭隘的目的,那么在训练后可能会扔掉其他部分——但这需要了解模型内部/源代码和你的特定需求,并且会导致模型在许多其他常规操作中被破坏(并可能抛出错误(。

最新更新