Lightgbm 실행 OMP: Error #15: Libomp 초기화.dylib, but found libiomp5.dylib already initialize

2476 단어 fixerrors
lightgbm 2.2.3을 실행하는 동안 다음과 같은 오류가 발생했습니다. OMP: Error #15: Initializing libomp.dylib, but found libiomp5.dylib already initialize
다음 설명은 OMP: Hint 이것은 OpenMP 런타임의 여러 복사본이 프로그램에 연결되어 있음을 의미합니다.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://openmp.llvm.org/
프로그램이 실행될 때 여러 개의openMP 복사본에 연결되어 성능이 떨어지거나 부정확한 결과가 발생할 수 있으므로 한 개만 프로그램에 접속되는 것이 가장 좋다는 뜻이다.그런데 OpenMP가 뭔지도 모르잖아!
먼저 이 문제를 해결하십시오.

메서드 1)


설명에 따라 환경 변수 KMP_DUPLICATE_LIB_OK 를 TRUE 로 설정하지만 이로 인해 붕괴되거나 오류가 발생할 수 있습니다...
import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'

메서드 2)


LightGBM의 FAQ 웹 페이지의 Question 10에서 이 문제를 언급하고 해결 방안을 제시했다.(단, macOS 사용자만 대상으로 하고 다른 사용자는 충돌 패키지를 찾아 그 중 하나를 선택해야 한다.)
If you are using Python distributed by Conda, then it is highly likely that the error is caused by the numpy package from Conda which includes the mkl package which in turn conflicts with the system-wide library. In this case you can update the numpy package in Conda or replace the Conda’s OpenMP library instance with system-wide one by creating a symlink to it in Conda environment folder $CONDA_PREFIX/lib.
Python이 기본적으로 Conda에 설치되어 있다면, Conda에 있는numpy 패키지의 mkl는 시스템 라이브러리와 충돌하기 쉬우므로 updatenumpy package in Conda를 선택하거나 시스템 라이브러리로 설정할 수 있습니다.
Assuming you are using macOS with Homebrew, the command which overwrites OpenMP library files in the current active Conda environment with symlinks to the system-wide library ones installed by Homebrew:
ln -sf `ls -d "$(brew --cellar libomp)"/*/lib`/* $CONDA_PREFIX/lib

Homebrew용 conda가 설치된 macOS의 기기에서 단말기에 위의 내용을 직접 입력하면 conda 환경을 Homebrew로 설치된 시스템 범위 내의 라이브러리에 연결할 수 있습니다. 그 중에서 CONDA_PREFIX는 Conda의 설치 경로입니다.

좋은 웹페이지 즐겨찾기