aws cpu만 잡기

dddodo·2022년 7월 6일
0

aws에서 알 수 없는 에러가 뜰 때

두 달 전 팀 프로젝트를 진행할 당시, aws 서버에 제가 구현한 딥러닝 코드를 업로드하고 테스트해야 했습니다.

만든 CNN 모델을 h5 파일로 저장시켜서 aws 서버에 올리고
불러와서 테스트 하려는데,,, 처음 보는 에러 발생...

보시면 아시겠지만, 신경망 알고리즘을 불러오지 못한다는 에러가 떴습니다.
cuDNN이 초기화 되지 못 해서 에러 뜨는 거 같으니 위 로그 메세지를 보라고 나와있어요.

그래서 로그 메세지도 열심히 들여다 보고, 온갖 구글링을 통해 해결방법을 찾으려고 했습니다.

제가 서치한 바, 이런 에러가 뜨는 원인들에는 CUDA의 버전 문제, cuDNN의 버전 문제, 혹은 모델의 학습 자체가 aws 서버에서 이루어져야 한다 등등..
여러 의견들이 많아 하나하나 다 해보았지만 결국 해결하지 못했습니다.

삽질 끝에 cpu와 gpu의 문제라는 것을 깨닫게 되었죠..!

제가 로컬에서 모델을 돌리고 테스트 한 환경은 cpu 환경이였습니다.
그런데 tensorflow, keras, pytorch등을 사용한 딥러닝 모델은 aws 서버 내에서 동작할 때 gpu를 먼저 할당 받는다고 tensorflow 페이지에 나와 있었습니다...!

이걸 해결해주기 위해서는 강제적으로 gpu 서버가 아닌 cpu 서버가 할당되도록 명령어를 지정해줘야 하고
그러기 위해서는

# cpu만 강제 사용

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"

위 코드를 작성해줘야 합니다!!!!

import 구문을 제외하고 저 한 줄 짜리 코드를 입력하니, 거짓말처럼 잘 돌아가더라구요....
저처럼 엄청난 삽질의 시간을 경험하지 마시고,,, 로컬에서 잘 돌아가던 딥러닝 코드가 aws 내에서 돌아가지 않는다면 cpu/gpu 문제를 의심해보셨으면 좋겠습니다.!!

profile
데이터를 좋아합니다-!

0개의 댓글