프로젝트/리뷰집

tensorflow 사용하는 프로젝트 heroku에 배포 - tensorflow-cpu를 사용하자

발전생 2021. 2. 10. 17:29

tensorflow 최신 버전으로 아무 생각 없이 깔고 로컬에서 잘 구동하는 걸 확인 했다.

그래서 heroku에 배포에도 잘 될 줄만 알았다.

"error: failed to push some refs to"

그래서 이게 도대체 무슨 말인가? 싶어서 해당 에러를 복사해서 구글에 검색을 해봤다.

어느 블로그에서는 commit이 문제가 있어서라고 했다. 

 

근본적인 문제는 이게 아니었다.

heroku의 해당 app에 들어가보니 build failed가 적혀 있었다.

 

그래서 view build log를 클릭 했더니 맨 아랫줄에서 문제의 원인을 찾을 수 있었다.

 

Compiled slug size: 616.2M is too large (max is 500M)

500M까지 가능한데 필요한 파이썬 패키지 설치에서 100M가 넘어버렸다.

log를 위로 올려보니 다운받은 패키지들의 용량이 옆에 적혀 있었다.

tensroflow가 무려 394.4MB나 된다.

 

문제의 원인은 찾았고 이제 해결법을 찾아봤다.

역시 stack overflow

stackoverflow.com/questions/61062303/deploy-python-app-to-heroku-slug-size-too-large

 

Deploy python app to Heroku "Slug Size too large"

I'm trying to deploy a Streamlit app written in python to Heroku. My whole directory is 4.73 MB, where 4.68 MB is my ML model. My requirements.txt looks like this: absl-py==0.9.0 altair==4.0.1 ast...

stackoverflow.com

tensorflow 대신 tensorflow-cpu를 설치하면 용량을 줄일 수 있었다. 기본 tensorflow는 gpu를 사용하는데 어차피 heroku에서는 gpu 사용이 불가능 하단다. 

tensorflow-cpu는 144.2MB밖에 안 된다. 많이 줄어들었다. 

tensorflow-cpu로 바꿔 설치하니 빌드에 성공할 수 있었다.