0. 들어가며
회사에서 맡은 제품 중 딥러닝으로 Objet Detection을 이용하는 제품이 있다. 이번에 성능 개선을 위해 tensorflow2.x버전으로 업데이트를 하려고 한다. 단순히 tensorflow버전을 올린다고 성능이 좋아지지는 않겠지만 Tensorflow object detection model zoo에 있는 모델 중 성능이 괜찮은 것들은 tensorflow2로 되어있어 이번에 업데이트를 하려고 한다.
서버도 없고 그래픽카드도 없고 딥러닝 지식도 거의 없는 상황에서 맨땅에 헤딩하며 업데이트한 모험기
지금 시작합니다.
1. 그래서 어떻게 시작하라고요?
일단 가장 큰 문제는 서버였다. 내 컴퓨터에 그래픽 카드를 추가하면 되지 않냐 라고 할 수 있겠지만 라이젠 그래픽카드 소켓이여서 CUDA가 지원되는걸 끼울 수 없다. 기존에 사용하던 서버는 이번에 팀이 옮겨지면서 사용할 수 없었다.
다행히 빅데이터팀에서 안쓰고 있는 서버 1대에서 벤더로 공간을 제공해주었다. tensorflow와 cuda는 이미 docker형식으로 설치를 해주셨다.
OS : Ubuntu 18.04
GPU : RTX2080 TI
python : 3.8.5
Tensorflow : 2.3.1 GPU
CUDA : 11
빌려준 것만 해도 감사해야하지만 사람인지라 욕심이 더 생겼다. GUI로 제공이 되지 않았고 모든걸 다 CLI로 해결해야하는 상황이였다.
이제 서버는 구했으니 모델 학습을 할 수 있는 환경을 구축해야한다.
(정말 안타깝게도 한글로 번역이 없어 추후 번역을 해서 올릴지에 대해 고민중이다.)
tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/
위 사이트를 참고하면서 시작했다.
tensorflow와 cuda버전이 좀 안맞긴 하지만 일단 시작했다. 이게 학부때부터 괜히 편견일 수 있는데 anaconda를 잘 사용하지 않는다. 그래서 여기서 anaconda설치도 제외하고 python에서 제공해주는 venv로 가상환경을 만들었다. 여기서 문제가 터졌다.
2. 아니 왜 가상환경을 쓰면 안되는거지??
일단 저렇게 NVDIA에서 제공해주는 docker로 빌드된 Tensorflow라는걸 듣지 못한 상태에서 시작을 했다. 문제는 이게 파이썬 버그인지는 모르겠지만 상위 로컬 site-packages에 저장된 tensorflow가 새로운 가상환경에서 사용을 할 수 없었다. 그래서 추가적으로 설치를 하고 정상 설치를 테스트 하였더니 cuda10을 찾을 수 가 없다고 한다. 아니 분명 CUDA가 외부에 설치되어있는데 버전이 맞지 않다고 다시 cuda10을 깔아야한다고?
확인해본 결과 이미 빌드된 버전을 사용하는거는 괜찮은데 새로 tensorflow를 pip나 conda를 이용해 설치하게 되면 NVIDA에서 빌드한 tensorflow가 아닌 google에서 뿌려놓은 tensorflow로 설치가 되어 cuda와 호환성이 바뀔 수 있게 된다.
그래서 가상환경을 포기하고 기존 공간에서 작업을 하기로 결정했다.
3. 이제 진짜로 학습 환경을 설치 해보자.
대충 보니까 나는 이제 tensorflow, cuda는 다 설치를 한 상태이므로 Tensorflow Object Detectino API Installation부터 하면 될 것 같다.(tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/install.html#tensorflow-object-detection-api-installation)
해당 설치는 다음과 같은 디렉토리 트리 구조를 가지게 되어있다.
TensorFlow/
└─ models/
├─ community/
├─ official/
├─ orbit/
├─ research/
└── ...
그래서 나는 일단 따로 tensorflow(이름 짓기 어려워서 그냥 tensorflow라고 했는데 아무거나 해도 상관없음)라는 작업공간을 만들었다.디렉토리를 새로 생성하는 명령어는 아래와 같다.
mkdir "원하는 폴더명"
그 후 해당 디렉토리로 이동한 후 tensorflow의 models repository를 clone하라고 한다.
먼저 이동을 했다.
cd "생성한 폴더명"
그 후 models repository를 clone하기 위해 아래 명령어를 입력해준다.
git clone github.com/tensorflow/models
시작이 반이라고 models repository를 clone하는 것 까지 했으면 반절은 했다고 생각한다. 이제 다음 글에서 protobuf설치부터 설명을 하도록 한다.
'Python > 딥러닝 (Deep-Learning)' 카테고리의 다른 글
우리 EasyOCR로 한번 가자(1) (2) | 2021.04.13 |
---|---|
Tensorlfow Object Detection API 사용 중 발생한 에러 정리 (0) | 2021.03.25 |
눈물없이는 볼 수 없는 회사 딥러닝 프레임워크 업데이트 모험기(3) (0) | 2021.03.17 |
눈물없이는 볼 수 없는 회사 딥러닝 프레임워크 업데이트 모험기(2) (0) | 2021.02.21 |
Mask R cnn native 설치하기 (0) | 2019.08.28 |