«ОШИБКА MKL: Параметр 12 ...» для больших матриц с scipy.linalg.eigvalsh в Anaconda 2018.12-py37 - PullRequest
0 голосов
/ 22 января 2019

Прежде всего, обратите внимание, что проблема, кажется, существует уже давно (например, 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.

Он просто вызывает ошибку и возвращает массив только с нулями, кроме последней записи.

...