Python占用太多内存

问题描述 投票:1回答:1

我正在从.npz文件导入稀疏矩阵。下面是代码的脚本。

if runmode == 2:
        data = np.load('Operators2.npz', allow_pickle=True)

    Dx = data['Dx']
    Dy = data['Dy']
    Dz = data['Dz']
    Dxx = data['Dxx']
    Dyy = data['Dyy']
    Dzz = data['Dzz']
    Dxp = data['Dxp']
    Dyp = data['Dyp']
    Dzp = data['Dzp']
    M = data['M']
    del data

但是我的系统内存增加了,程序崩溃了。当我执行下面的代码行时,程序崩溃

DIV = Dx*u+Dy*v+Dz*w

这里u,v,w的形状为373248x1。如果在同一代码中,我实际上计算出Dx,Dy,...,M,则内存没有问题。

导入稀疏矩阵时我做错什么了吗?稀疏矩阵的大小为373248x373248,其中存储了746496个元素。谢谢。

python numpy memory memory-management out-of-memory
1个回答
0
投票
如果要执行稀疏运算,请不要使用NumPy的内置乘法。而是使用属于您正在使用的表示形式的乘法函数。如果这是CSR,则可以使用scipy.sparse.csr_matrix.multiply
© www.soinside.com 2019 - 2024. All rights reserved.