본문 바로가기

파이썬3

[scikit-learn] KneighborsClassifier의 OpenBLAS문제 해결법

728x90
반응형

1. 개요

 이해는 안되지만 scikit-learn의 KneighborsClassifier와 같이 OpenBLAS를 이용해 multi-core기능을 활용하는 것들의 경우 그냥 실행하면 에러와 함께 강제 종료되는 경우가 있다.

scipy가 업그레이드 되면 해결될거란 글도 봤지만 시도했던 것 중 된 것이 있어서 기록을 해둔다.

 

2. 해결책

 

 해결책은 바로 OMP_NUM_THREADS 옵션을 조정하는 것이다. 이것은 OpenMP 라이브러리가 병렬 처리를 위해 사용하는 스레드 수를 설정하는 데 사용되는 환경 변수이다. 

 

1) 터미널 상에서 지정하는 방식

# 터미널 창에서 아래의 명령어를 실행한다.
# 여기서 64는 컴퓨터의 threads에 적절히 맞춰서 사용해야한다.


export OMP_NUM_THREADS=64

 

2) 파이썬에서 지정하는 방식

import os

os.environ["OMP_NUM_THREADS"] = '64' # 사용할 threads 만큼 부여
728x90
반응형