gpt4 book ai didi

python - pickle scipy 的 SuperLU 类用于不完全 LU 分解

转载 作者:太空宇宙 更新时间:2023-11-04 05:52:17 32 4
gpt4 key购买 nike

使用 scipy.sparse.linalg.spilu ,我计算了一个非常大的稀疏矩阵的不完全 LU 分解。由于这个过程很耗时,我想保存计算出的 LU 分解。该函数返回 scipy.sparse.linalg.SuperLU对象。

我的第一次尝试是使用 pickle 模块来保存整个对象。但是,我得到一个:

cPickle.PicklingError: Can't pickle <type 'SuperLU'>:
attribute lookup __builtin__.SuperLU failed

错误信息。

我的第二个想法是保存 SuperLU 对象的相关类成员 ('L', 'U', 'nnz', 'perm_c', 'perm_r', 'shape') 然后重新组装它。但是,SuperLU 对象似乎是不可实例化的:

>>> SuperLU()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot create 'SuperLU' instances

有人知道如何将不完整的 LU 分解结果缓存到文件中吗?

最佳答案

最后我听从了 ali_m 的建议并编写了我自己的 solve() 函数。重建置换矩阵 PrPc 后,我可以将它们与 LR 一起转储并拥有我需要的一切.我还填写了 scipy 的功能请求,希望在未来的版本中会有更直接的选择。

关于python - pickle scipy 的 SuperLU 类用于不完全 LU 分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29620809/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com