Прежде всего, обратите внимание, что проблема, кажется, существует уже давно (например, GitHub Scipy Issue 8205 ).Бывает, что я получаю ошибку MKL (см. Ниже), когда пытаюсь получить собственные значения комплексных матриц с размером 2000x2000 или больше, используя eigvalsh
или eigh
(другие процедуры не были проверены).Очевидно, что проблема должна была быть решена на стороне MKL с выпуском 2019.0, насколько я понимаю, поэтому я обновил Anaconda до 2018.12-py37, так как Scipy связан с MKL 2019.1.К сожалению, это не работает для меня, и я все еще получаю ошибку.Я что-то пропустил или есть исправление для этого?Похоже, что нет версии MKL Conda-Forge Scipy, поэтому это может быть самая последняя доступная версия (в Anaconda с MKL).
Anaconda Release 2018.12-py37
выдержка из conda list
:
# Name Version Build Channel
blas 1.0 mkl
mkl 2019.1 144
numpy 1.15.4 py37h7e9f1db_0
numpy-base 1.15.4 py37hde5b4d6_0
scipy 1.1.0 py37h7c811a0_2
Я уже создал виртуальную среду conda только с необходимыми модулями.Он вызывает те же ошибки.
import numpy as np
from scipy.linalg import eigvalsh
mat = np.random.rand(2000,2000) + 1j * np.random.rand(2000,2000)
mat += mat.conjugate()
eigvalsh(mat)
Я получаю следующую ошибку:
Intel MKL ERROR: Parameter 12 was incorrect on entry to ZHBRDB.
Он просто вызывает ошибку и возвращает массив только с нулями, кроме последней записи.