[英]Converting row of sparse matrix to dense leaks memory
在我的程序中,我有兩個scipy.sparse.csr_matrix。 一排只有一排,另一排實際上很大。 在程序的每次迭代中,我都會添加和減去矩陣的行。 最終,我需要在單行矩陣上使用.todense()。 我注意到,僅調用此函數會使使用的內存在沒有明顯原因的情況下增長。 我需要進行多次迭代,並且無法承受這種內存泄漏。
我能夠編寫一個簡單的程序來說明我的問題:
import numpy as np
from scipy import sparse
a = sparse.csr_matrix(np.matrix(np.random.random((1, 250))))
b = sparse.csr_matrix(np.matrix(np.random.random((250, 250))))
for i in range(10000000):
a = a - b[4]
c = a.todense()
print(i)
因此,當我運行上面的程序時,我看到在特定點之后使用的內存不會停止增長。
這是一個錯誤 ,將在scipy 0.18.0中修復。 沒有解決方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.