簡體   English   中英

將稀疏矩陣行轉換為密集泄漏存儲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM