Я запускаю python script, и я получаю эту ошибку:
Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.
Оба файла присутствуют в каталоге anaconda2/lib. Как я могу исправить эту ошибку? Благодарю.
Я запускаю python script, и я получаю эту ошибку:
Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.
Оба файла присутствуют в каталоге anaconda2/lib. Как я могу исправить эту ошибку? Благодарю.
Если вы используете conda, попробуйте выполнить следующие две команды:
conda install nomkl numpy scipy scikit-learn numexpr
conda remove mkl mkl-service
Он должен исправить вашу проблему.
Я столкнулся с этой проблемой после установки anaconda3 (vesion 4.2.0). Исправление для меня было простым, и я смог продолжать использовать mkl. Просто обновите последнюю версию numpy.
conda update numpy
Просто хотелось отметить, что Anaconda 4.0.0, поставляемый с mkl включен по умолчанию, имеет эту проблему. Проблема действительно в Anaconda, так как она может быть воспроизведена с помощью простого теста python ниже.
Фактическая проблема заключается в том, что Anaconda связан с mkl, но не с libmkl_core.so, поэтому он имеет отсутствующий символ и может быть замечен запуском:
$ LD_DEBUG=symbols python -c 'import sklearn.linear_model.tests.test_randomized_l1' 2>&1 | grep -i error
2200: /opt/anaconda/lib/python2.7/site-packages/scipy/special/../../../../libmkl_avx.so: error: symbol lookup error: undefined symbol: mkl_dft_fft_fix_twiddle_table_32f (fatal)
Я не хотел удалять mkl, так как я хотел бы повысить производительность, поэтому я нашел обходной путь, который работал у меня - предварительно загрузите libmkl_core.so перед исполнением.
$ python -c 'import sklearn.linear_model.tests.test_randomized_l1'
Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so.
$
$ LD_PRELOAD=/opt/anaconda/lib/libmkl_core.so python -c 'import sklearn.linear_model.tests.test_randomized_l1'
$
Все приведенные выше решения не помогли мне, но я нашел хороший компромисс:
для тех, кто имеет ту же ошибку и хочет сохранить Anaconda на своем компьютере, а использование стали mkl для (нулевой и scipy) хорошей производительности процесса, решение, которое я предлагаю:
Отредактируйте файл .bashrc
.
Найдите в файле что-то вроде export PATH="/home/anaconda2/bin:$PATH"
.
Поместите a #
в начале, чтобы прокомментировать его из script:
#export PATH="/home/anaconda2/bin:$PATH"
Откройте новый терминал, и вы должны запустить базовую установку python.
Это сработало для меня, надеюсь, что это будет полезно.
Получена та же проблема и решена с помощью команды:
conda install nomkl
Я получил решение из этого обсуждения https://github.com/BVLC/caffe/issues/3884
Хотелось добавить на темы Валилуцик и Зайкун Сюй. Я не могу добавлять комментарии, так как пока у меня недостаточно очков.
conda install nomkl numpy scipy scikit-learn numexpr
работал у меня без необходимости удаления mkl и mkl-сервиса.
Добавление ответа на вопрос Ли, если nomkl
будет медленнее:
mkl - это библиотека ядра Intel для математического ядра и оптимизирована вручную для Intel cpus. nomkl использует OpenBlas в соответствии с этим: https://docs.continuum.io/mkl-optimizations/
Кажется, что mkl довольно быстро работает на многих матричных операциях для intel cpus (см. https://software.intel.com/en-us/articles/performance-comparison-of-openblas-and-intel-math-kernel-library-in-r)
Я видел, как кто-то говорит, что nomkl быстрее для AMD cpus (возможно, потому что mkl работает неправильно в AMD?)