Xgboost: OMP:エラー#15:libiomp5.dylibを初期化していますが、libiomp5.dylibがすでに初期化されていることがわかりました。

作成日 2016年10月28日  ·  63コメント  ·  ソース: dmlc/xgboost

バグやインストールの問題については、次の情報を提供してください。
あなたが提供する情報が多ければ多いほど、私たちはより簡単に提供できるようになります
ヘルプとアドバイス。

環境情報

オペレーティングシステム:Mac OSX Sierra 10.12.1

コンパイラ:

使用したパッケージ(python):

xgboostバージョン:xgboost 0.6a2

Pythonパッケージを使用している場合は、

  1. Pythonのバージョンと配布:
    Pythong 2.7.12
  2. ソースからインストールしていない場合にxgboostをインストールするコマンド
    pip install xgboost

再現する手順

  1. xgboostからインポートXGBClassifier
    numpyをnpとしてインポートします
    matplotlib.pyplotをpltとしてインポートします
    x = np.array([[1,2]、[3,4]])
    y = np.array([0,1])
    clf = XGBClassifier(base_score = 0.005)
    clf.fit(x、y)
    plt.hist(clf.feature_importances_)

    何を試しましたか?

    エラーメッセージを参照してください。
    「OMP:エラー#15:libiomp5.dylibを初期化していますが、libiomp5.dylibがすでに初期化されていることがわかりました。
    OMP:ヒント:これは、OpenMPランタイムの複数のコピーがプログラムにリンクされていることを意味します。 パフォーマンスが低下したり、誤った結果が発生したりする可能性があるため、これは危険です。 最善の方法は、たとえば、ライブラリ内のOpenMPランタイムの静的リンクを回避することにより、単一のOpenMPランタイムのみがプロセスにリンクされるようにすることです。 安全でない、サポートされていない、文書化されていない回避策として、環境変数KMP_DUPLICATE_LIB_OK = TRUEを設定して、プログラムの実行を継続できるようにすることができますが、クラッシュが発生したり、サイレントに誤った結果が生成されたりする可能性があります。 詳細については、 http://www.intel.com/software/products/support/を参照して

私は試した:
OSのインポート
os.environ ['KMP_DUPLICATE_LIB_OK'] = 'True'

それは私のために仕事をすることができます。 しかし、それはちょっと醜いです。


xgboostの問題ではないかもしれませんが、「pip installxgboost」を使用してxgboostをアップグレードした後、この問題が発生したことは間違いありません。 誰かが私と同じ問題を抱えているかどうかを確認するために、ここに問題を投稿します。 私はOpenMPについてほとんど知識がありません。 助けてください!
前もって感謝します!

最も参考になるコメント

これを試してみたところ、エラーは止まりました!

OSのインポート

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

全てのコメント63件

xgboostとmatplotlibの両方を使おうとすると、同じ問題が発生します。

OS X 10.10.5
Python 2.7.12
xgboost 0.6
matplotlib 1.5.1

xgboostとmatplotlibで同じ問題が発生しました。 同じ症状... @ symPhysicsによって報告されたのと同じエラーメッセージでカーネルが死ぬ

Mac OS X 10.12.3

Python 3.5.2 | Anacondaカスタム(x86_64)| (デフォルト、2016年7月2日、17:52:12)
[GCC4.2.1互換性のあるAppleLLVM 4.2(clang-425.0.28)]ダーウィン

xgboost 0.6a2

matplotlib 2.0.0

FWIW ...これはMacOS固有の問題のようです。 CentOS LinuxVMで問題を再現できませんでした。

少なくともMacの場合、

brew uninstall libiomp clang-omp

brewからgccv5を取得している限り、openmpが付属しています

次の手順に従います。
https://github.com/dmlc/xgboost/tree/master/python-package

この問題は今すぐ解決できます。

これを試してみたところ、エラーは止まりました!

OSのインポート

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

私の場合、(Macの)問題は次のように修正されました
pipアンインストールxgboost
に続く
pip install xgboost

これを試してみたところ、エラーは止まりました!

OSのインポート

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

ありがとう、それは動作します!!!

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 'conda installnomkl'で解決しました。

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 'conda installnomkl'で解決しました。

どうもありがとう、それは動作します。

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 'conda installnomkl'で解決しました。

おかげで、それは私にも役立ちます。

@gpettyあなたは真のヒーローです。 ありがとう!

@gpetty動作します! ありがとう:))

不思議なことに、 conda install nomklは私には機能しませんでした(Brewにもlibiomp clang-ompインストールされていません)。
import os os.environ['KMP_DUPLICATE_LIB_OK']='True'
うまくいくかもしれない

brew uninstall libiomp clang-omp

Error: No such keg: /usr/local/Cellar/libiomp

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 'conda installnomkl'で解決しました。

nomklとは何なのかわからないのですが、どうもありがとうございました。 テンソルフローを使用してCNN-RNNモデルを実行すると、数日混乱しました。os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'を使用すると、機能しましたが、プログラムの実行が非常に遅くなりました。正しい答えが得られました。

私の問題はxgboostとはまったく関係がありませんでしたが、他の人のために共有するために、Google経由でここにアクセスしました。

conda経由でインストールされたkerasとmatplotlibを使用しています。 KMP_DUPLICATE_LIB_OK設定すると、私の経験が警告から例外/クラッシュに変わりました。 nomklをインストールしても何も変わりませんでした。 最終的に私はmatplotlibのバージョンをダウングレードし、それで問題が修正されました
conda install matplotlib=2.2.3

このエラーをグーグルで検索する人のために、私が見つけた最良の解決策をここにリストし

このサイトには2つの方法がリストされています。 私は方法1を好みます。これは、 anaconda3/libディレクトリに移動し、古いlibiomp5.dylibファイルを削除することです。 素晴らしくてシンプル。

このエラーをグーグルで検索する人のために、私が見つけた最良の解決策をここにリストし

このサイトには2つの方法がリストされています。 私は方法1を好みます。これは、 anaconda3/libディレクトリに移動し、古いlibiomp5.dylibファイルを削除することです。 素晴らしくてシンプル。

方法1を試す場合は、十分に注意してください。ファイルを削除した後、すべてがクラッシュし、openmpを再インストールする必要があります。 元のcsdnリンク(中国語)で報告された同じ問題。

ありがとう!!
MACの私にとって:
OSのインポート
os.environ ['KMP_DUPLICATE_LIB_OK'] = 'True'

homebrew / virtualenvがインストールされているnumpy / keras / matplotlib / tensorflowからminicondaがインストールされているものに切り替えた後も同じ問題が発生しました。 conda install nomkl実行することで解決しましたが、keras(およびnumpy)は、IntelのMath Kernel Libを使用しない場合、可能な限り高速に実行されないと思いますが、少なくとも私のコードは実行されるので、¯\ _(ツ) _ /¯

@ sam1902も機能しました

私のMacでも同じ問題があります
実行するだけです-condaupdate -n base conda
必要な依存関係をインストールおよび更新します

私のMacで同じ問題が発生し、提案された方法を試しましたが、機能します

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

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 'conda installnomkl'で解決しました。

私はanacondaを使用してnomklのインストールを行いました。 これで問題は解決しました。

また、「brewuninstall ...」を実行しようとすると、「Nosuchkeg」エラーが発生しました。

これを試してみたところ、エラーは止まりました!

OSのインポート

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

これは、OpenMP開発者によって強く推奨されていないことに注意してください。 彼らのエラーメッセージから:

最善の方法は、たとえば、ライブラリ内のOpenMPランタイムの静的リンクを回避することにより、単一のOpenMPランタイムのみがプロセスにリンクされるようにすることです。 安全でない、サポートされていない、文書化されていない回避策として、環境変数KMP_DUPLICATE_LIB_OK=TRUEを設定して、プログラムの実行を継続できるようにすることができますが、クラッシュが発生したり、サイレントに誤った結果が生成されたりする可能性があります。

conda install nomklは私のために働いた。

誰かがこれが何をするのか、そしてなぜそれが問題を解決するのか説明できますか?

@ georgeu2000 、私は同じことについて疑問に思っています。 それは私にとっても問題を解決しました。 バックエンドとしてNumpy、Matplotlib、Keras、Tensorflowを使用しています。 そのパッケージが何をするのか理解していないようです。 誰でも説明できますか?

どうもありがとう。

以前、openblasとmklの間にいくつかのベンチマークを見ましたが、mklは優れていません。 openblasでmklを使用する理由はありますか? 手元にあるソースコードなしで何かを説明することは、あまりやる気を起こさせません。

MacOS Mojaveの場合:

conda install nomkl

動作しますが、ダウングレードする必要があります。

 mkl_fft 1.0.10-py36h5e564d8_0-> 1.0.1-py36h917ab60_0
 mkl_random 1.0.2-py36h27c97d8_0-> 1.0.1-py36h78cc56f_0
 numexpr 2.6.9-py36h7413580_0-> 2.6.9-py36hafae301_0
 numpy 1.15.4-py36hacdab7b_0-> 1.15.4-py36h926163e_0
 numpy-base 1.15.4-py36h6575580_0-> 1.15.4-py36ha711998_0
 scikit-learn 0.20.2-py36h27c97d8_0-> 0.20.2-py36hebd9d1a_0
 scipy 1.2.1-py36h1410ff5_0-> 1.2.1-py36h1a1e112_0

私の問題はxgboostとはまったく関係がありませんでしたが、他の人のために共有するために、Google経由でここにアクセスしました。

conda経由でインストールされたkerasとmatplotlibを使用しています。 KMP_DUPLICATE_LIB_OK設定すると、私の経験が警告から例外/クラッシュに変わりました。 nomklをインストールしても何も変わりませんでした。 最終的に私はmatplotlibのバージョンをダウングレードし、それで問題が修正されました
conda install matplotlib=2.2.3

ねえバディ、あなたは私のお尻を救った

homebrew / virtualenvがインストールされているnumpy / keras / matplotlib / tensorflowからminicondaがインストールされているものに切り替えた後も同じ問題が発生しました。 conda install nomkl実行することで解決しましたが、keras(およびnumpy)は、IntelのMath Kernel Libを使用しない場合、可能な限り高速に実行されないと思いますが、少なくとも私のコードは実行されるので、¯_(ツ)_ /¯

^^^^これが私にとってのトリックでした。 ありがとう!

ありがとう!!
MACの私にとって:
OSのインポート
os.environ ['KMP_DUPLICATE_LIB_OK'] = 'True'

おかげで私のために働く

私のコンダlibには、複数のlibgompます:

予期したエラーが発生しました:

OMP: Error #15: Initializing libiomp5.dylib, but found libomp.dylib already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.

これは間違いなく役立ちます:

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

これが私のすべてのバージョンです:

(µ_env) jespinozlt-osx:lib jespinoz$ pwd
/Users/jespinoz/anaconda/envs/µ_env/lib
(µ_env) jespinozlt-osx:lib jespinoz$ ls -lhtr | grep "omp"
-rw-rw-r--    4 jespinoz  tigr   165B Oct 28  2016 libgomp.spec
-rw-rw-r--    4 jespinoz  tigr   108K Oct 28  2016 libgomp.a
-rwxrwxr-x   11 jespinoz  tigr    62K Oct 28  2016 libgomp.1.dylib
-rwxrwxr-x    6 jespinoz  tigr   489K Oct 27 17:30 libomp.dylib
-rwxrwxr-x    5 jespinoz  tigr   176K Mar 14 13:10 libiompstubs5.dylib
-rwxrwxr-x    5 jespinoz  tigr   296K Mar 14 13:10 libiomp5_db.dylib
-rwxrwxr-x    5 jespinoz  tigr   2.7M Mar 14 13:10 libiomp5.dylib
lrwxr-xr-x    1 jespinoz  tigr    15B Apr 10 14:51 libgomp.dylib -> libgomp.1.dylib

それらの1つを削除する必要がありますか? もしそうなら、私は維持する必要がありますlibiomp5.dylibの代わりにlibgomp.1.dylibとちょうどシンボリックリンク?

OMP:エラー#15:libiomp5.dylibを初期化していますが、libiomp5.dylibがすでに初期化されていることがわかりました。

OMP:ヒント:これは、OpenMPランタイムの複数のコピーがプログラムにリンクされていることを意味します。 パフォーマンスが低下したり、誤った結果が発生したりする可能性があるため、これは危険です。 最善の方法は、たとえば、ライブラリ内のOpenMPランタイムの静的リンクを回避することにより、単一のOpenMPランタイムのみがプロセスにリンクされるようにすることです。 安全でない、サポートされていない、文書化されていない回避策として、環境変数KMP_DUPLICATE_LIB_OK = TRUEを設定して、プログラムの実行を継続できるようにすることができますが、クラッシュが発生したり、サイレントに誤った結果が生成されたりする可能性があります。 詳細については、 http://www.intel.com/software/products/support/を参照して

これを試してみたところ、エラーは止まりました!

OSのインポート

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

問題を修正しますか。 ありがとう

テンソルフローとケラを使用しようとしているAnacondaの新しいMacBook Proにanacondaを新たにインストールしたときに、この問題が発生しました。 使用しました。 'conda update --all'を実行すると、問題が修正されました。

brew uninstall libiomp clang-omp

Error: No such keg: /usr/local/Cellar/libiomp

私は同じエラーをどのように解決しましたか、そしてconda insatllnomklも機能していません
そのエラーを与える
UnavailableInvalidChannel:チャネルにアクセスできないか、無効です。
チャンネル名:トーチ
チャネルのURL: https
エラーコード:404

続行するには、conda構成を調整する必要があります。
conda config --show channelsを使用して、構成の現在の状態を表示します。
conda config --show-sourcesを使用して、構成ファイルの場所を表示します。

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 'conda installnomkl'で解決しました。

同じ問題が発生し、keras、numpy、tensorflow1.14を使用しています。
conda install nomklは私の問題を解決します! ありがとう@gpetty

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 私はそれを解決しました
'conda installnomkl'。

これは私にも役立ちました。 LightGBMパッケージの実行中にエラーが発生しました。特定の行数または特定の機能数の後にエラーが発生していました。

私はそれがメモリ使用量または並列化プロセスと関係があると推測しています。 誰かが正確に「libomp」が何をするのか、そしてなぜ「nomkl」がそれを解決するのかを説明できれば素晴らしいでしょう。 ありがとう@gpetty。

不思議なことに、 conda install nomklは私には機能しませんでした(Brewにもlibiomp clang-ompインストールされていません)。

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

うまくいくかもしれない

こんにちは
私も同じですが
conda install -c anaconda nomkl
私のために働いた
それが役に立てば幸い

やあみんな、

os.environ['KMP_DUPLICATE_LIB_OK']='True'を使用することは絶対に眉をひそめていますが、最終的にはそれを使用しなければならなかったため、 conda install -c anaconda nomklが機能しませんでした。 他のアイデアはありますか?

os.environ ['KMP_DUPLICATE_LIB_OK'] = 'True'を使用しますが、推奨されませんでした。 Conda install nomklを使用すると、無限に実行されているように見え、それを強制終了する必要があります。 conda update -n base Condaが機能し、ライブラリが更新されました。

これを試してみたところ、エラーは止まりました!

OSのインポート

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

どうもありがとうございました! わたしにはできる!

OSのインポート

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

それは私のために働きます、ありがとう。

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 'conda installnomkl'で解決しました。

ありがとうブロ!それは私のために働いた!

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 'conda installnomkl'で解決しました。

ありがとうブロ!それは私のために働いた!

tensorflow object_detection APIをテストし、object_detection_tutorial.ipynbファイルを実行するだけです

私は2010MBPを使用しており、anacondaでpython(3.7)ファイルを実行しています。 だから私はそれが私の「古い」システムと関係があると思います-私はここでどの領域を踏んでいるのか分かりません-xgboostをアンインストールしようとしました、それがインストールされていないことに気づきました、それをインストールしようとしました、それはちょうど行き詰まりました; conda install nomklを試しましたが、Pythonスクリプト自体が実行されませんでした( illegal instruction: 4 ); nomklをアンインストールしました。 私が使用したときに最終的に働いた

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

私はまだそれがどのようにそしてなぜ働いたのか分かりません、しかしねえ、それは今働いています

これをありがとう; conda update --allは私のために働いたものでした。 Python 3.7AnacondaでMacOS Mojaveを実行します(新規インストールではありません...昨年からの日付です)。

再開します。誰かが問題について何か洞察を持っている場合は、共有してください。

この問題は今すぐ解決できます。

爆笑

これを試してみたところ、エラーは止まりました!

OSのインポート

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

それは私のために働くthx

私にとって、この組み合わせはうまくいきました:

brew uninstall libiomp clamp-omp
conda uninstall intel-openmp -n base
conda install -c intel openmp -n myenv
conda install nomkl -n myenv

主な競合はbrew libiompが、その後、 conda base envおよびopenmp超えるpython 3.7 envと競合します。 openmpは、依存関係チェーン/フォールバックを整理するまで、私を輪になって送ってくれました。 チャネルソースの違いは大きな違いを生みました。

これを試してみたところ、エラーは止まりました!

OSのインポート

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

それは私にとってもうまくいきます

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 'conda installnomkl'で解決しました。

ありがとう! それは今日の時点で私のために働きます! なぜこれが機能するのか誰かが説明できますか?

/usr/local/lib/libomp.dylibリンクするMacOSX用のバイナリホイールを提供します。 を実行してXGBoostをインストールします

python -m pip install xgboost

これで私のケースが解決してくれてありがとう。 私のMacにはlibiompとclamp-ompがなく、nomklをインストールしませんでした。
だから私はこれらの2つのステップだけを行います。

conda uninstall intel-openmp
conda install -c intel openmp

私にとって、この組み合わせはうまくいきました:

brew uninstall libiomp clamp-omp
conda uninstall intel-openmp -n base
conda install -c intel openmp -n myenv
conda install nomkl -n myenv

主な競合はbrew libiompが、その後、 conda base envおよびopenmp超えるpython 3.7 envと競合します。 openmpは、依存関係チェーン/フォールバックを整理するまで、私を輪になって送ってくれました。 チャネルソースの違いは大きな違いを生みました。

(macOS Catalina 10.15.5)

私の環境にインストールされているパッケージを調べてみると、mklのアップデートがあることに気づきました。

だから私はmklを更新することで私のケースを解決することができました。

conda install -c intel mkl

このコメントを実行できますconda install nomkl

numpy、keras、matplotlibを使用したPythonプログラムを使用したMacでも同じエラーが発生しました。 'conda installnomkl'で解決しました。

この背後にある魔法は何ですか?

window10でも同じエラーが発生しました。

os.environ ['KMP_DUPLICATE_LIB_OK'] = 'True'、このコマンドを試しましたが、 @ Tooooddのおかげで問題が解決し

ここで、この問題の代替ソリューションを見つけました。これは、 LD_PRELOAD変数を使用してOpenMPランタイムをプリロードすることです。

LD_PRELOAD=<path_to_libiomp5.so> <path_to your_executable>

これにより、libiompの複数のロードが排除され、すべてのコンポーネントがこの特定のバージョンのOpenMPを使用するようになります。

OSのインポート
os.environ ['KMP_DUPLICATE_LIB_OK'] = 'True'

に続く

conda install nomkl

私のために働いた。 ありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価