본문 바로가기

소프트웨어/Study

ML] Google Colab + Google Drive 이용하기

Tensorflow를 사용하려고 하면 정말 많은 셋팅을 해야한다. 그리고 개인이 Model Learning을 진행하기에는 리소스가 너무 큰 단점이 있다.

 

갓구글께서는 이러한 단점을 모두 커버할 수 있는 Colab Service를 운영중이다.

Colab은 공짜로 GPU를 할당받을 수있다. 또한 Colab에서 google drive를 mount하여 코드를 관리할수도 있다.

 

1. Google Drive에 ipnyb 파일 만들기

Google Drive에서 개발에 사용할 폴더를 만들고 'Google Colaboratory'를 선택하면 ipynb(notebook file)이 생성된다.

만약 Google Colab을 처음 사용한다면 '연결합 앱 더보기' 에서 Colab을 설치한 후 진행하면 파일생성이 가능하다.

 

 

 

2. 파일 실행 및 run

생성된 ipynb 파일을 열면 jupyter notebook과 유사한 interface의 Colab이 실행된다. 이 후 코드를 작성하고 run(shift+enter)를 수행하면 자동으로 runtime이 할당되고 script가 수행된다.

아마도 별다른 설정을 하지 않으면 CPU 버전으로 할당이 되는 것으로 보인다.

 

 

 

2. GPU 할당





상단 메뉴의 '런타임'->'런타임 유형 변경'을 선택하면 HW 가속기를 GPU 선택할 수 있다. 

 

활성세션 확인 시 'GPU' 가 할당 된 것을 볼 수 있다.

 

Colab에서 개발을 해보니 GPU는 대략적으로 하루에 12시간 정도를 할당 받을 수 있는 것 같다. 그리고 오랫동안 GPU를 사용하지 않으면 자동 해제되기도 한다. 또한 특정 조건(정확히 모르겠음)에 들어가면 패널티(?)를 받아서 일정시간동안 GPU 할당이 불가능해진다.

 내 경우는 GPU를 돌리지도 않는데 계속 할당요청을 했었을 때 패널티를 받았었다. 이용시 불필요한 상황에서는 GPU를 해제 하는것도 나쁘지 않아보인다.

 

 

 

3. Google Drive 연결

개인적으로 Google Drive Mount가 굉장히 유용한 것 같다. 학습 후 checkpoint를 저장하거나 h5를 저장하는데 매우 편하기도 하고 연동도 매우 쉽게 이루어진다.

 

위와 같이 google.colab의 drive를 mount 요청하면 AUTH용 Url이 출력된다. 이 링크를 타고 Google Login을 하면 출력된는 AUTH를 notebook에 입력하면 Google drive mount가 끝난다. 

(resource를 할당(cpu,gpu,tpu 등..) 받을 때마다 새로 AUTH를 입력해줘야한다.)

 

Google Drive는 /gdrive/MyDrive에 link된다. 사용자에 따라서 'MyDrive'가 아니라 'My Drive'(띄어쓰기있음)에 link되는 경우도 있다. refernce에도 띄어쓰기 있는 버전으로 나와있는데 나는 'MyDrive'에 할당되고있다. (왜인지는 모르겠으나... )

/gdrive/MyDrive에 접근하면 등록된 계정의 모든 Google Drive 파일에 접근이 가능해진다. 여기부터는 개발자가 편한대로 개발을 진행하면 될 것 같다.

 

4. 의외의 장점 

 기본 Google Drive상에서 zip파일을 합축 해제하려면 Cloude로 구현된 3rd party extention(app?)을 Google Drive상에 설치해야한다. (그리고 압축을 푸는데 굉장히 느리다). Colab을 이용하면 바로 unzip 명령을 code상에서 입력이 가능해서 엄청난 속도로 압축이 풀린다! 

 Dataset을 Drive상에서 이용하는데 매우 유용하므로 꼭 사용하기를 바란다.

 

 

 

끝.