Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用anaconda scipy对大型矩阵进行对角化时出错_Python_Scipy_Anaconda_Lapack - Fatal编程技术网

Python 使用anaconda scipy对大型矩阵进行对角化时出错

Python 使用anaconda scipy对大型矩阵进行对角化时出错,python,scipy,anaconda,lapack,Python,Scipy,Anaconda,Lapack,最近,我从在MacOSX上使用自制python改为使用anaconda,在对大型(ish)矩阵进行对角化时,我开始出错。调用scipy.linalg.eigvalsh(A)时,矩阵超过约3000x3000个条目,会出现错误: $HOME/anaconda2/lib/python2.7/site-packages/scipy/linalg/decomp.pyc in eigvalsh(a, b, lower, overwrite_a, overwrite_b, turbo, eigvals, ty

最近,我从在MacOSX上使用自制python改为使用anaconda,在对大型(ish)矩阵进行对角化时,我开始出错。调用
scipy.linalg.eigvalsh(A)
时,矩阵超过约3000x3000个条目,会出现错误:

$HOME/anaconda2/lib/python2.7/site-packages/scipy/linalg/decomp.pyc in eigvalsh(a, b, lower, overwrite_a, overwrite_b, turbo, eigvals, type, check_finite)
    762                 overwrite_a=overwrite_a, overwrite_b=overwrite_b,
    763                 turbo=turbo, eigvals=eigvals, type=type,
--> 764                 check_finite=check_finite)
    765 
    766 

$HOME/anaconda2/lib/python2.7/site-packages/scipy/linalg/decomp.pyc in eigh(a, b, lower, eigvals_only, overwrite_a, overwrite_b, turbo, eigvals, type, check_finite)
    385         if eigvals is None:
    386             w, v, info = evr(a1, uplo=uplo, jobz=_job, range="A", il=1,
--> 387                              iu=a1.shape[0], overwrite_a=overwrite_a)
    388         else:
    389             (lo, hi) = eigvals

ValueError: On entry to ZHBRDB parameter number 12 had an illegal value
最后一条错误消息似乎类似于这个旧的scipy问题:,但我遇到的矩阵要小得多

运行
print np.\uuuu config\uuuuu.show()
会给出:

lapack_opt_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['$HOME/anaconda2/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['$HOME/anaconda2/include']
blas_opt_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['$HOME/anaconda2/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['$HOME/anaconda2/include']
lapack_mkl_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['$HOME/anaconda2/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['$HOME/anaconda2/include']
blas_mkl_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['$HOME/anaconda2/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['$HOME/anaconda2/include']
None

目前,这是一个MKL错误,根据中的讨论,该错误已被报告,并且是

请注意,OpenBLAS构建的SciPy没有这个问题。然而,与此同时,我们也注意到,最佳工作空间数组大小在
scipy.linalg.eigh
中不正确。一旦决定如何更改底层
?SYEVR
/
?HEEVR
包装器的签名,这也将得到纠正


作为奖励,可能有人能够有选择地计算特征值,因为最初这些例程允许计算特征值,但没有在
scipy.linalg.eigh

中公开。Anaconda可能正在使用旧版本的Lapack来支持向后兼容性。您使用的是哪个版本的SciPy?我使用的是运行anaconda更新的最新版本,“1.0.0”您可能现在使用的是MKL,而以前可能有所不同。是的,我认为这是对的,我已经将np的输出添加到了问题中。这是已知的,我认为MKL+conda中有一个bug