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版本和分布:
    蟒蛇 2.7.12
  2. 如果您不是从源代码安装,则安装xgboost的命令
    pip 安装 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.environ['KMP_DUPLICATE_LIB_OK']='真'

它可以为我完成这项工作。 但它有点丑。


我知道这可能不是 xgboost 的问题,但我很确定这个问题是在我使用“pip install xgboost”升级 xgboost 之后发生的。 我把这个问题贴在这里看看是否有人和我有同样的问题。 我对 OpenMP 知之甚少。 请帮忙!
提前致谢!

最有用的评论

我试过了,错误停止了!

导入操作系统

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

所有63条评论

当我尝试同时使用 xgboost 和 matplotlib 时,我遇到了同样的问题。

OS X 10.10.5
蟒蛇 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)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] 在达尔文

xgboost 0.6a2

matplotlib 2.0.0

FWIW...这似乎是一个 MacOS 特定的问题。 我无法在 CentOS Linux VM 上重现该问题。

至少对于 Mac,

brew uninstall libiomp clang-omp

只要你从 brew 中获得 gcc v5,它就带有 openmp

按照以下步骤操作:
https://github.com/dmlc/xgboost/tree/master/python-package

我们现在可以关闭这个问题了。

我试过了,错误停止了!

导入操作系统

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

对我来说,问题(在 Mac 上)已解决
pip 卸载 xgboost
其次是
pip 安装 xgboost

我试过了,错误停止了!

导入操作系统

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

谢谢,它有效!!!

我在使用 numpy、keras 和 matplotlib 的 python 程序的 Mac 上遇到了同样的错误。 我用'conda install nomkl'解决了这个问题。

我在使用 numpy、keras 和 matplotlib 的 python 程序的 Mac 上遇到了同样的错误。 我用'conda install nomkl'解决了这个问题。

非常感谢,它有效。

我在使用 numpy、keras 和 matplotlib 的 python 程序的 Mac 上遇到了同样的错误。 我用'conda install nomkl'解决了这个问题。

也谢谢,它也适用于我。

@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 install nomkl'解决了这个问题。

非常感谢,即使我不知道什么是 nomkl。 当我使用 tensorflow 运行 CNN-RNN 模型时,它让我困惑了几天。当我使用 os.environ['KMP_DUPLICATE_LIB_OK']='True' 时,它起作用了,但程序运行得很慢。你得到了正确的答案。

我的问题与 xgboost 完全无关,但我是通过谷歌来到这里的,这样我就可以为他人分享。

我正在使用通过 conda 安装的 keras 和 matplotlib。 设置KMP_DUPLICATE_LIB_OK只是将我的经验从警告更改为异常/崩溃。 安装nomkl对我没有任何改变。 最终我降级了我的 matplotlib 版本并为我解决了问题
conda install matplotlib=2.2.3

对于在谷歌上搜索此错误的人,我找到的最佳解决方案列在此处

该站点列出了两种方法。 我更喜欢方法 1,即进入您的anaconda3/lib目录并删除旧的libiomp5.dylib文件。 好看又简单。

对于在谷歌上搜索此错误的人,我找到的最佳解决方案列在此处

该站点列出了两种方法。 我更喜欢方法 1,即进入您的anaconda3/lib目录并删除旧的libiomp5.dylib文件。 好看又简单。

如果您想尝试方法1,请务必小心。删除文件后一切都崩溃了,我必须重新安装openmp。 原始 csdn 链接(中文)中报告的相同问题。

谢谢!!
对于 MAC 上的我:
导入操作系统
os.environ['KMP_DUPLICATE_LIB_OK']='真'

从 homebrew/virtualenv 安装 numpy/keras/matplotlib/tensorflow 切换到 miniconda 安装后遇到同样的问题。 通过运行conda install nomkl解决了,尽管我认为 keras(和 numpy)如果不使用 Intel 的 Math Kernel Lib 就不会运行得尽可能快,但至少我的代码仍然运行如此¯\_(ツ) _/¯

@sam1902也对我

在我的 Mac 上有同样的问题
只需运行 - conda update -n base conda
它安装和更新所需的依赖项

在我的 mac 上遇到了同样的问题,尝试了建议的方法并且它有效

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

我在使用 numpy、keras 和 matplotlib 的 python 程序的 Mac 上遇到了同样的错误。 我用'conda install nomkl'解决了这个问题。

我使用 anaconda 来安装 nomkl。 这解决了问题。

此外,尝试执行“brew uninstall...”给出了“No such keg”错误。

我试过了,错误停止了!

导入操作系统

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

应该注意的是,OpenMP 开发人员强烈反对这样做。 从他们的错误消息:

最好的办法是确保只有一个 OpenMP 运行时链接到进程中,例如避免在任何库中静态链接 OpenMP 运行时。 作为不安全、不受支持、未记录的解决方法,您可以设置环境变量KMP_DUPLICATE_LIB_OK=TRUE以允许程序继续执行,但这可能会导致崩溃或静默地产生错误的结果。

conda install nomkl为我工作。

谁能解释一下它的作用以及为什么它可以解决问题?

@georgeu2000 ,我

非常感谢。

我之前看到过 openblas 和 mkl 之间的一些基准测试,mkl 并不优越。 有没有理由在 openblas 上使用 mkl? 在没有手头的源代码的情况下解释一些东西并不是很有动力。

在 MacOS Mojave 上:

conda 安装 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 完全无关,但我是通过谷歌来到这里的,这样我就可以为他人分享。

我正在使用通过 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)如果不使用英特尔的 Math Kernel Lib 就不会运行得尽可能快,但至少我的代码仍然运行如此¯_(ツ)_ /¯

^^^^ 这就是我的窍门。 谢谢!

谢谢!!
对于 MAC 上的我:
导入操作系统
os.environ['KMP_DUPLICATE_LIB_OK']='真'

对我有用,谢谢

在我的 conda 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

我应该删除其中之一吗? 如果是这样,我应该保留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.environ['KMP_DUPLICATE_LIB_OK']='真'

确实解决了问题。 谢谢

我在 Anaconda 的全新 Mac book pro 上全新安装 anaconda 时遇到了这个问题,试图使用 tensor-flow 和 keras。 我用了。 'conda update --all' 并解决了这个问题。

brew uninstall libiomp clang-omp

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

我有同样的错误,你是怎么解决的,而且 conda insatll nomkl 也不工作
它给出了错误
UnavailableInvalidChannel:通道不可访问或无效。
频道名称:火炬
频道网址: https :
错误代码:404

您需要调整 conda 配置才能继续。
使用conda config --show channels查看配置的当前状态,
并使用conda config --show-sources查看配置文件位置。

我在使用 numpy、keras 和 matplotlib 的 python 程序的 Mac 上遇到了同样的错误。 我用'conda install nomkl'解决了这个问题。

我遇到了同样的问题,我使用了 keras、numpy 和 tensorflow 1.14。
conda install nomkl确实解决了我的问题! 谢谢@gpetty

我在使用 numpy、keras 和 matplotlib 的 python 程序的 Mac 上遇到了同样的错误。 我解决了
'康达安装nomkl'。

这对我也有用。 我在运行 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 工作并更新了 lib

我试过了,错误停止了!

导入操作系统

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

非常感谢你! 这个对我有用!

导入操作系统

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

它对我有用,谢谢。

我在使用 numpy、keras 和 matplotlib 的 python 程序的 Mac 上遇到了同样的错误。 我用'conda install nomkl'解决了这个问题。

谢谢兄弟!它对我有用!

我在使用 numpy、keras 和 matplotlib 的 python 程序的 Mac 上遇到了同样的错误。 我用'conda install nomkl'解决了这个问题。

谢谢兄弟!它对我有用!

我只是测试 tensorflow object_detection API 并运行 object_detection_tutorial.ipynb 文件

我在 2010 MBP 上,在 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.7 Anaconda 运行 Mac OS Mojave(不是新安装的......日期为去年)。

重新开放,如果有人对这个问题有任何见解,请分享。

我们现在可以关闭这个问题了。

LMAO

我试过了,错误停止了!

导入操作系统

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

它对我有用 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 和我的python 3.7 env over openmp发生冲突

我试过了,错误停止了!

导入操作系统

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

它也适用于我

我在使用 numpy、keras 和 matplotlib 的 python 程序的 Mac 上遇到了同样的错误。 我用'conda install nomkl'解决了这个问题。

谢谢! 从今天起它对我有用! 谁能解释为什么这有效?

我们现在为 Mac OSX 提供了一个二进制轮,它链接到/usr/local/lib/libomp.dylib 。 通过运行安装 XGBoost

python -m pip install xgboost

谢谢你这解决了我的案子。 我的Mac没有libiomp和clamp-omp,我也没有安装nomkl。
所以我只做这两个步骤。

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 和我的python 3.7 env over openmp发生冲突

(macOS Catalina 10.15.5)

在我的 env 中查看已安装的包,我注意到 mkl 有更新。

所以我能够通过更新 mkl 来解决我的问题。

conda install -c intel mkl

您可以运行此评论conda install nomkl

我在使用 numpy、keras 和 matplotlib 的 python 程序的 Mac 上遇到了同样的错误。 我用'conda install nomkl'解决了这个问题。

这背后有什么魔力?

我的 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.environ['KMP_DUPLICATE_LIB_OK']='真'

其次是

conda 安装 nomkl

为我工作。 谢谢!

此页面是否有帮助?
0 / 5 - 0 等级