Ошибка № 15: Инициализация libiomp5.dylib, но найденная libiomp5.dylib уже инициализирована

Получение сообщения об ошибке при использовании matplotlib:

Ошибка № 15: Инициализация libiomp5.dylib, но обнаружение libiomp5.dylib уже инициализирован OMP: Подсказка: это означает, что несколько копий среды выполнения OpenMP были связаны с программой. Это опасно, поскольку может ухудшить производительность или привести к неверным результатам. Лучшее, что можно сделать, - убедиться, что в процесс включена только одна среда выполнения OpenMP, например, избегая статического связывания среды выполнения OpenMP в любой библиотеке. В качестве небезопасного, неподдерживаемого, недокументированного обходного пути вы можете установить переменную среды KMP_DUPLICATE_LIB_OK = TRUE, чтобы позволить программе продолжить выполнение, но это может привести к сбоям или молча приводить к неверным результатам. Для получения дополнительной информации, пожалуйста, смотрите http://www.intel.com/software/products/support/.

Ответы

Ответ 1

Кажется, это проблема MacOS. Для решения проблемы сделайте следующее:

import os

os.environ['KMP_DUPLICATE_LIB_OK']='True'

Ответ найден по адресу: https://github.com/dmlc/xgboost/issues/1715

Ответ 2

Это лучшее решение, если применимо. Иначе, в любом случае решение gcamargos, скорее всего, будет работать. Тем не менее, он поставляется с предупреждением "что это может привести к сбоям или молча привести к неправильным результатам"

У меня была та же ошибка на моем Mac с программой на python, использующей numpy, keras и matplotlib. Я решил это с помощью

conda install nomkl

Ответ найден по адресу: https://github.com/dmlc/xgboost/issues/1715

Ответ 3

Такая же проблема была в OSX при обновлении tenenslow до 1.13 с использованием conda.

  • Решение 1: /gcamargo работал, но в 3 раза медленнее за период обучения.
  • Решение 2: /sjcoding сработал и убрал серьезную травму, но в 3 раза медленнее тренировался.
  • Решение 3: восстановление производительности было следующим: установите pip в новом conda env и используйте pip для установки tenorflow. Использование conda-forge также работало, но версия tf старая.

По-видимому, новые оптимизации Intel-MKL в Anaconda не работают для тензорного потока OSX.

Ответ 4

Итак, для тех из вас, кто сталкивался с такой же проблемой с lightgbm, я нашел в документации, что вы можете

  1. pip uninstall lightgbm
  2. pip install lightgbm
  3. Запустите следующее в Anaconda Environmentmnet (если вы используете Conda)
ln -sf 'ls -d "$(brew --cellar libomp)"/*/lib'/* $CONDA_PREFIX/lib

Эти три вещи работали на меня.

Ответ 5

У меня была такая же проблема в среде conda, где был установлен TensorFlow. После выполнения

  • pip uninstall tensorflow
  • pip install tensorflow

проблема исчезла

Ответ 6

Кажется, проблема связана с тем, как библиотеки MKL связаны с OpenMP. Если вам неудобно явно игнорировать предупреждение от разработчиков OpenMP, другой вариант, доступный для тех, кто работает в среде conda, - это удалить зависимости MKL, т.е.

conda install nomkl

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

Ответ 7

Попробуйте изменить бэкэнд matplotlib.

Например, Tkagg backend вызывает эту проблему в моем случае. Я изменил его на Qt5Agg

matplotlib.use('Qt5Agg') 

и это помогает.