【问题标题】:Tensorflow OMP: Error #15 when trainingTensorFlow OMP:训练时出现错误 #15
【发布时间】:2018-04-17 14:24:26
【问题描述】:

我正在 CentOS HPC 上使用 tensorflow 训练我的神经网络。但是我在训练过程开始时遇到了这个错误:

OMP:错误 #15:正在初始化 libiomp5.so,但发现 libiomp5.so 已初始化。 OMP:提示:这意味着 OpenMP 运行时的多个副本已链接到程序中。这是危险的,因为它会降低性能或导致不正确的结果。最好的办法是确保只有一个 OpenMP 运行时链接到进程中,例如通过避免在任何库中静态链接 OpenMP 运行时。作为一种不安全、不受支持、未记录的解决方法,您可以设置环境变量 KMP_DUPLICATE_LIB_OK=TRUE 以允许程序继续执行,但这可能会导致崩溃或默默地产生不正确的结果。如需更多信息,请参阅http://www.intel.com/software/products/support/

代码是实例分割,它对很多人都很好,但在我的例子中失败了。

为什么会发生?如何解决?

【问题讨论】:

  • 尝试阅读错误信息,您的两个问题都在那里得到解答。
  • @abccd 该消息清楚地表明该解决方案是一种不安全、不受支持、未记录的解决方法。
  • 仔细阅读。 “最好的办法是确保只有一个 OpenMP 运行时链接到进程中”。您必须清楚地说明您正在运行什么以及导致错误的原因。说明该代码适用于其他人但不适用于您不会帮助任何人帮助您。现在任何人都可以告诉您的是使用不安全的解决方法或一次运行一个 OpenMP 运行时。
  • @abccd 你说得对,我应该描述更多细节。我已经解决了这个问题。谢谢。

标签: python tensorflow parallel-processing openmp


【解决方案1】:

我在 macOS 上遇到了类似的问题,错误信息相同 (see this question),发现原因如下:

问题:

我有一个安装了 Numpy、SciPy 和 TensorFlow 的 conda 环境。

Conda 正在使用 Intel(R) MKL 优化,请参阅 docs

Anaconda 已将一些最流行的数值/科学 Python 库的基于 MKL 的二进制版本打包到 MKL 优化中,以提高性能。

英特尔 MKL 函数(例如 FFT、LAPACK、BLAS)使用 OpenMP 技术进行线程化。

但在 macOS 上您不需要 MKL,因为 Accelerate Framework 带有自己的优化算法并且已经使用 OpenMP。这就是错误信息的原因:OMP Error #15: ...

解决方法

您应该安装所有不支持 MKL 的软件包:

conda install nomkl

然后使用

conda install numpy scipy pandas tensorflow

紧随其后

conda remove mkl mkl-service

欲了解更多信息,请参阅conda MKL Optimizations

【讨论】:

  • 这对我来说效果很好。我刚刚从上述步骤开始创建了一个新的 ML 环境。我的问题是,在模型完成训练后,我无法使用 matplotlib 图在同一脚本中绘制训练数据。
【解决方案2】:

我通过咨询 HPC 服务器专家解决了这个问题。可能对 Compute Canada 系统用户有用。

为什么会发生?

此错误是由于 tensorflow 预构建的 Python 轮子(特定于 Compute Canada 系统)和 conda 环境之间的冲突造成的。 引用:“conda 总是有点问题,因为它下载预编译的二进制文件,里程可能会有所不同......”

如何解决?

正如@abccd 指出的那样,“最好的办法是确保只有一个 OpenMP 运行时链接到进程中”。但是,我还没有弄清楚如何确保这一点。

所以我卸载了 conda,并使用 pip install 在模块系统中安装了所有东西。然后网络工作正常。

【讨论】:

    【解决方案3】:

    我解决了,如消息中所述,添加:

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

    【讨论】:

      【解决方案4】:

      只需使用 Anaconda 降级我的 TensorFlow 版本就可以了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-22
        • 2019-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多