【问题标题】:Is there any solution for this memory issue?这个内存问题有什么解决方案吗?
【发布时间】:2021-01-10 06:40:34
【问题描述】:

祝大家...

我在 windows 操作系统中使用 python 分析了一个大的推文数据集。当我尝试将数据转换为向量 (tfidf) 时,它给了我这个错误消息:

MemoryError 无法分配 298。形状为 (439563, 90889) 且数据类型为 float64 的数组的 Gib

我该如何解决这个问题?

以下是使用的代码:

vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform("MyData")
tf_idf = pd.DataFrame(data = X.toarray(), columns=vectorizer.get_feature_names())
final_df = tf_idf
print("{} rows".format(final_df.shape[0]))
final_df.T.nlargest(5, 0)

【问题讨论】:

  • 解决方案是不要一次将所有内容读入内存,或者购买(大量)更多 RAM。如果您提供一些代码,有人可以为您提供更具体的帮助
  • 由于您只查找行数和最大的 5 个值,因此您可以使用迭代器遍历 TfidfVectorizer 并随时收集前 5 个,而不是计算和将所有内容收集到一个数组中,然后从整体中取出最大的 5 个。

标签: python artificial-intelligence data-science data-mining data-analysis


【解决方案1】:

我建议你使用Google Colab
您可以免费使用强大的 GPU 和 RAM

【讨论】:

    【解决方案2】:

    我认为最好的解决方案是将数据分成小文件然后单独处理..我做到了,我得到了我想要的结果..谢谢大家..

    【讨论】:

      猜你喜欢
      • 2021-02-26
      • 2021-10-14
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 2020-12-15
      • 2011-07-04
      • 2010-10-25
      • 1970-01-01
      相关资源
      最近更新 更多