이전에는 잘 돌아가던 토픽모델링에서 갑자기 에러가 남.
TerminatedWorkerError: A worker process managed by the executor was unexpectedly terminated. This could be caused by a segmentation fault while calling the function or by an excessive memory usage causing the Operating System to kill the worker.
구글링하니 거의 scikit-learn 모델 관련이었고, 파라미터의 n_jobs 값을 조정하면 해결되어 보였음.
1)토픽모델링 gensim.models.ldamodel.LdaModel 과 2)토픽모델링 시각화 pyLDAvis.gensim_models.prepare 두개의 코드를 사용 중이었는데, 첫번째 LdaModel에서는 n_jobs 조절하는 파라미터가 없어 다른 이유를 찾느라 많이 헤맸음.
메모리 문제인가 싶어 일단 가상메모리를 늘려 코드를 다시 돌렸고, 원래 안돌아가던 LdaModel이 돌아감..@!
하지만 pyLDAvis 에서는 똑같이 TerminatedWorkerError가 나타났고 또 다시 좌절함 ㅠㅠ
이때부터 메모리에 집착을 하기 시작했는데, 오랜 시간 노동 끝 결국은 해결되지 않음...😪
이쯤 메모리가 문제는 아닌 것 같아 다시 처음부터 구글링을 해 놓친게 있는지 확인했고, n_jobs에 다시 초첨을 맞추었음. 그리고 pyLDAvis Document에서 파라미터에서 n_jobs를 조정할 수 있는 것을 확인함.
n_jobs의 디폴트값이 -1었고, n_jobs=1로 수정하니 에러가 해결!!! ㅠㅠㅠ후.. 뺑뺑뺑 돌았따 ㅋㅋㅋ
n_jobs : 내 알고리즘을 병렬 연산하기 위해 CPU 코어를 몇 개 쓸건지 지정.
n_jobs = -1 : 모든 코어 사용. CPU 100%. 속도가 빨라짐.
n_jobs = n : n개의 코어 사용
결론)
1. 파라미터 n_jobs 변경
2. 메모리 문제인지 확인하기
'SELF-IMPROVEMENT > error 기록' 카테고리의 다른 글
DataFrame에서 날짜 변환 시 한글(월일) 추가 (+locale error) (0) | 2022.11.02 |
---|---|
Anaconda3 설치 오류 (0) | 2022.10.21 |
[SQL오류] Recursive query aborted after 1001 iterations. (0) | 2021.10.22 |
[Google Colab] 코랩 텍스트 파일 불러오기 오류 (0) | 2021.05.30 |
[Python] 파이썬 에러들 (0) | 2021.05.13 |