【问题标题】:ValueError: array is too big when loading GoogleNews-vectors-negativeValueError:加载 GoogleNews-vectors-negative 时数组太大
【发布时间】:2017-04-02 14:25:34
【问题描述】:

我正在尝试使用以下代码从 Google 加载预训练的词向量:

from gensim import models
w = models.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin.gz', binary=True)

但我收到一个错误提示

文件“C:\ProgramData\Anaconda3\lib\site-packages\gensim\models\keyedvectors.py”,第 197 行,load_word2vec_format result.syn0 = zeros((vocab_size, vector_size), dtype=datatype)

ValueError: 数组太大; arr.size * arr.dtype.itemsize 大于最大可能大小。

谁能提出一个可能的解决方案。提前致谢。

【问题讨论】:

    标签: python gensim


    【解决方案1】:

    这很可能是因为您安装的 Python 使用 32 位寻址而触发的,因此无法分配加载 GoogleNews 向量所需大小的数组。一些选项:

    • 切换到 64 位 Python。请注意,加载完整的向量集需要 3GB 以上,因此除非您的 RAM 超过 4GB,否则无论如何都很难使用完整集。
    • 使用 gensim 的load_word2vec_format() 方法的可选limit 参数仅读取文件中的一些早期条目。该文件似乎以最频繁到最不频繁的令牌顺序排列,因此通常早期条目就是您所需要的。例如,您可以尝试 limit=500000 仅读取前 500,000 个条目(而不是全部 300 万个)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      • 2020-02-10
      • 2015-11-24
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多