“OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.”解决方法总结
时间:2024-03-24 14:37:58 来源:网络cs 作者:峨乐 栏目:广告工具 阅读:
一、问题描述
跑了点神经网络的代码,想画几个激活函数的图像,代码如下:
运行后报了以下错误:
翻译如下:
OMP:错误 #15:正在初始化 libiomp5md.dll,但发现 libiomp5md.dll 已经初始化。
OMP:提示 这意味着 OpenMP 运行时的多个副本已链接到程序中。 这很危险,因为它会降低性能或导致不正确的结果。 最好的办法是确保只有一个 OpenMP 运行时链接到进程中,例如 通过避免在任何库中静态链接 OpenMP 运行时。 作为一种不安全、不受支持、未记录的解决方法,您可以设置环境变量 KMP_DUPLICATE_LIB_OK=TRUE 以允许程序继续执行,但这可能会导致崩溃或静默产生不正确的结果。 有关详细信息,请参阅 http://www.intel.com/software/products/support/。
二、原因分析
将绘图代码注释后不再报错,不知是何原因。通过错误信息来看,应该是要初始化一个新的libiomp5md.dll
,但libiomp5md.dll已经存在,在anaconda的目录下搜索该文件发现目录下确实有多个该配置文件。但哪个能删哪个有用也说不好,遂于CSDN查找答案。 三、解决方案
1. 情况一:numpy或其他
(1)将numpy降级1;
(2)根据第二条提示信息,可以设置环境变量 KMP_DUPLICATE_LIB_OK=TRUE。添加以下代码, 该语句建议放在文件的顶部2,保证前后顺序,不要在这两个语句之间插入其他语句。
import osos.environ['KMP_DUPLICATE_LIB_OK']='True'
但“治标不治本”,每个文件都要添加,且可能对某些情况是暂时可用的,也有可能导致崩溃或者产生错误结果。
2.情况二: 之前无任何下载安装等其他异常操作,但使用时报错。
根据python interpreter的路径,删除其目录下多余的libiomp5md.dll
(记得备份文件和存储路径),不过可能会造成其他未知的问题。
我的是在Anaconda的base环境下,所以删了第二个删除文件需要谨慎
3.情况三:使用matplotlib导致
(1)可能是该库被影响了,那么可以尝试一下conda install nomkl
对该包进行安装,但这种方式似乎只适用于Max OS,我用不了。
(2)如果Python是基本于Conda安装的,则Conda上的numpy包中的mkl很容易与系统内库发生冲突,可选择update numpy package in Conda或者设置为系统库3(但只是针对macOS用户,其他用户则需自行找出冲突包并选择其中之一)。
四、参考资料
OMP: Error #15: Initializing libomp.dylib, but found libiomp5.dylib already initialize问题解决 ↩︎
总结该问题解决方案:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized ↩︎
Lightgbm运行 OMP: Error #15: Initializing libomp.dylib, but found libiomp5.dylib already initialize ↩︎
本文链接:https://www.kjpai.cn/news/2024-03-24/147945.html,文章来源:网络cs,作者:峨乐,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!