본문 바로가기

Tech/[Trouble Shooting] Logs

텐서플로우 도커 환경을 사용해야 하는데 GPU가 없다면?

요약

GPU 를 통해서 학습을 시켜 모델링을 완료하여 모델 파일로 변환한 후, 그 모델을 API 서버로 만들어서 졸업 작품에 적용하려고 하였습니다.

문제는 졸업 작품에 환경이 Azure 클라우드 서비스를 기반으로 한 Kubernetes Cluster 환경이라는 것입니다.

단순히 로컬에서 동작하는 것이라면 호스트 OS의 GPU를 사용하면 됐지만, AKS(Azure Kubernetes Service)의 GPU 기능을 사용하자니 비용적으로 문제가 발생하였습니다.

이에, 데모 제품인만큼 “Tensorflow를 GPU가 아닌 CPU로 돌리면 어떨까?” 라는 생각이 들어 tensorflow-cpu 로 변경하여 해결하였습니다.

 

오류 문구는 다음과 같습니다.

 

2022-11-17 00:56:11.728793: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load d object file: No such file or directory

2022-11-17 00:56:11.728909: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerro

 

해결

아래와 같이 도커 파일을 설정한 후 빌드하면 됩니다.

기타 설정들도 섞여있을 수 있습니다. 핵심은 tensorflow-cpu 입니다.

FROM python:3.6-slim

COPY . /app

ENV JAVA_HOME /usr/lib/jvm/java-1.7-openjdk/jre

RUN apt-get update && apt-get install -y g++ default-jdk
RUN python3 -m pip install --upgrade pip
RUN pip3 install flask konlpy torch tensorflow-cpu lime

WORKDIR /app

CMD ["python3", "-m", "flask", "run", "--host=0.0.0.0"]