web-dev-qa-db-ja.com

エラー#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/ を参照してください。

13
gcamargo

これはMacOSの問題のようです。問題を解決するには、次を実行します。

import os

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

回答が見つかりました: https://github.com/dmlc/xgboost/issues/1715

32
gcamargo

これは、適切な場合、より良いソリューションです。それ以外の場合は、とにかくgcamargoのソリューションが機能する可能性があります。ただし、「クラッシュの原因になったり、誤って誤った結果を生成したりする可能性がある」という警告が付いています

私のMacでもpython numpy、keras、matplotlibを使用したプログラムで同じエラーが発生しました。

conda install nomkl

回答が見つかりました: https://github.com/dmlc/xgboost/issues/1715

7
sjcoding

Condaを使用してtensoflowを1.13に更新するときに、OSXで同じ問題が発生していました。

  • 解決策1:/ gcamargoは機能しましたが、トレーニングエポックごとに3倍遅くなりました。
  • 解決策2:/ sjcodingは機能し、深刻な警告を削除しましたが、トレーニングが3倍遅くなりました。
  • ソリューション3:復元されたパフォーマンスは、新しいconda envにpipをインストールし、pipを使用してtensorflowをインストールすることでした。 conda-forgeの使用も機能しましたが、tfのバージョンは古いです。

Anacondaの新しいIntel-MKL最適化は、OSXテンソルフローでは壊れているようです。

2
Jayhou

そのため、lightgbmでこれと同じ問題を抱えている人のために、 ドキュメント

  1. pip uninstall lightgbm
  2. pip install lightgbm
  3. Anaconda environmnetで次を実行します(Condaを実行している場合)
ln -sf `ls -d "$(brew --cellar libomp)"/*/lib`/* $CONDA_PREFIX/lib

これらの3つのことがうまくいきました。

1
ltjds

TensorFlowがインストールされているconda環境でも同じ問題が発生しました。やった後

  • pip uninstall tensorflow
  • pip install tensorflow

問題はなくなりました。

1
user11874275

matplotlibのバックエンドを変更してみてください。

たとえば、私の場合、Tkaggバックエンドがこの問題を引き起こします。 Qt5Aggに変更しました

matplotlib.use('Qt5Agg') 

そしてそれは役立ちます。

0
thanhtang