【发布时间】:2018-04-08 14:53:34
【问题描述】:
我遇到了以下问题:我有一个非常大的稀疏矩阵,其中包含 13M+ nnz 元素和一个大小约为 1 的向量。 99k+。问题是当我迭代相乘并将其保存在 crs 矩阵中时,它可以工作,但需要 3 个小时才能完成。因此,我将向量转换为对角矩阵,因此我可以直接将两者相乘。但是我一直在处理内存错误(64 位操作系统的 8 GB 内存)。这是我的代码:
GG=list(chain.from_iterable(list(IDFMatrix.data)))
dictDocFreqMat=TermFreq.dot(GG) #memory Error
for i in range(counter):
TermFreqCsr[i,:]=TermFreq[i].multiply(GG) # Takes 3 hours
progessbar.update(1)
progessbar.close()
对这个问题有什么建议吗?
【问题讨论】:
-
原因很简单:内存不足。您要么获得更多,要么优化您的程序以减少使用。
标签: python matrix sparse-matrix tf-idf