在循环中,我调用scipy.sparse.linalg.eigsh
以获得线性算子的最小代数特征值和特征向量。观察系统监视器,我可以看到python进程使用的内存正在上升和下降,可能是重新分配了算法所需的内存。这可能会导致性能显着下降,甚至导致堆碎片(?)。
有没有办法告诉scipy
保持所需的内存分配?
实际的函数调用看起来像这样:
(e0, v0) = eigsh(op, k=1, which='SA', return_eigenvectors=True, v0=v0,
ncv=ncv, tol = float('inf'), maxiter = 1)