개발자로서 살아남기/YOLO - Colab 이용해서 Custom 학습하기

YOLO - Colab 이용해서 Custom 학습하기 (1)

코드 살인마 2020. 10. 27. 22:19
728x90

자율 프로젝트에서는 YOLO를 Colab 환경에서 사용하기로 했다.

Colab 환경에서의 장점은 성능 좋은 GPU를 무료로 사용 가능한 점과 환경 구축이 간편한 점이다.

단점은 학습 데이터를 구글 드라이브에 넣어야하는데 용량이 부족하고 동기화 반응이 느리다.

또한 무료로 12시간만 사용 가능하기 때문에 오랜시간 학습이 필요한 모델을 훈련하는데 제약이 있다.

그러나 몇일 걸리는 환경을 단 몇 시간만에 구축할 수 있다는 점은 매우 큰 메리트인 것 같다.

Colab에 Darknet 설치

1. 구글 드라이브 접근

from google.colab import drive
drive.mount('/content/gdrive')

2. cudnn 설치

GPU에 맞는 cudnn을 설치해야한다. 2020-10-27일 기준으로 cudnn-10.0-linux-x64-v7.5.0.56.solitairetheme8임
구글 드라이브에 darknet 폴더와 하위폴더 cudnn을 만들고 cudnn안에 cudnn-10.0 버전을 설치 후 아래 명령어를 실행한다.

!tar -xzvf gdrive/My Drive/darknet/cudnn/cudnn-10.0-linux-x64-v7.5.0.56.solitairetheme8 -C /usr/local/

압축 풀고 /usr/local에 복사하는 명령어

3. Darknet 설치

참고로 !를 붙이면 리눅스 명령어가 실행된다. (cd는 매직명령어인 %를 붙여야한다. 이유는 모름,,,)

!git clone https://github.com/AlexeyAB/darknet.git

4. makefile 변경, 컴파일 후 내 드라이브에 복사

내 드라이브에 복사하는 이유는 darknet은 구글 서버에 저장되기 때문에 다시 load하면 사라진다.
문제 해결을 위해 내 드라이브에 실행파일을 복사한다. 이렇게 하면 재접속할 때 마다 darknet을 다운받을 필요가 없어진다.

GPU=1 CUDNN=1 CUDNN_HALF=1 OPENCV=1 AVX=0 OPENMP=0 LIBSO=1

makefile을 위와 같이 설정

!cp ./darknet /content/gdrive/My\ Drive/darknet/bin/darknet

!chmod +x ./darknet

./darknet 실행파일을 내 드라이브에 복사 후 권한 설정(런타임 재실행 하면 권한 설정 해야함)

다음은 custom 데이터를 드라이브에 넣어 훈련해본다.