colab & Kaggle 연동 및 기초 사용법

Kaggle Korea에서 진행중인 대회에서 Kaggle Kernel을 사용하다 보니 커널이 자꾸 죽는 이유는 도대체 무엇인지… competition에 늦게 참여한 관계로 더 시간이 촉박하기만 한데…. 그래서 google colab으로 바꾸려고 생각하였다.

캐글은 예측모델 및 분석 대회를 하는 플랫폼이다. 개인 및 단체에서 해결하고 싶은 과제와 데이터를 등록하면, 캐글에 가입한 데이터 과학자들이 모델을 개발하고 결과를 등록한다. 예측력을 순위로 하여 가장 좋은 순위에게는 상금도 주워진다. 그만큼 데이터 사이언스에 관한 분들은 모를 수 없는 사이트라고 생각한다.

Google Colaboratory는 Google Drive + Jupyter Notebook의 기능을 가지고 있으며, Google Drive처럼 협업 가능(동시에 수정 가능)하다고 한다. https://colab.research.google.com/로 접속시 사용 가능하다. 무엇보다 가장 좋았던 점은 캐글의 커널은 9시간이 최장 이용시간인 반면에, colab은 12시간이다. 3시간 차이에 얼마나 더 바뀌겠냐라는 분들도 계시 겠지만 GPU가 없는 나에겐 3시간은 엄청난 시간이다.

더 자세한 사항은 [https://zzsza.github.io/data/2018/08/30/google-colab/][https://zzsza.github.io/data/2018/08/30/google-colab/] 이 블로그를 참조하는 것을 추천한다! 개인적으로 데이터 사이언스에 관해 많은 것에 대해 자세히 다루고 있다고 생각하며 강추한다!(절대 홍보글 아님.)

구글 드라이브와 Colab 연동

  • 매번 session이 끊기거나 종료되면 이 작업을 해주어야 한다. 그래도 kaggle 보단 내 컴퓨터에선 덜 끊긴다. 먼저, 구글 드라이브와 연동을 시키는 이유는 로컬에서 Colab working directory로 파일을 업로드하게 되면 차후 다시 접속할 때 다시 업로드를 해주어야하지만 구글 드라이브에선 바로 읽을 수 있기 때문이다.
1
2
3
4
5
6
7

from google.colab import auth
auth.authenticate_user()

# colab에서 drive란 폴더를 만든 후, 우리 구글 드라이브의 root와 drive 폴더를 연결(mount)
from google.colab import drive
drive.mount('/content/gdrive')

구글 드라이브와 로컬 연동

  • 파일을 하나씩 업로드하지 말고 대량의 파일을 한꺼번에 업로드하고 싶은 경우
  • [BackupAndSync](https://www.google.com/drive/download/)를 사용해 로컬과 구글 드라이브를 연동
    • 1) 위 링크를 클릭해 백업 및 동기화 다운로드
    • 2) InstallBackupAndSync.dmg라는 파일을 클릭한 후, (열리지 않으면 우클릭 후 열기) 프로그램 설치
    • 3)맥북 환경이 한글이신 분은 Google에서 백업 및 동기화라는 응용 프로그램이 추가됨(이것도 실행이 안되면 클릭 후 실행)
    • 환경 설정에서 동기화할 폴더 선택 (단, 크기가 큰 파일은 동기화 시간이 오래 걸릴 수 있음)

Kaggle 연동하기

- 1) Kaggle beta API Json Key 다운

- Kaggle - My Account - Dataset 옆에 있는 …을 클릭한 후, Account로 이동
- 하단에 API 부분에 Create New API Token을 클릭하면 Json Key가 다운로드 됨
- 이 Json 키를 매번 Colab에서 올려서 할 수도 있지만, 더 편하게 사용하고 싶어서 Google Storage에 Json 파일을 올리고, 거기서 키를 복사해오는 방법으로 진행합니다

- 2) Google Storage에 Json Key 저장

- Google Storage로 이동한 후, Storage 버킷 선택 (버킷이 없다면 생성!)
- Colab에서 아래 명령어 입력
1
2
3
4
5
6
from google.colab import auth
auth.authenticate_user()

!mkdir -p ~/.kaggle
!mv ./kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json

우선 여기까지! 내일 다시 시작합니다!!!!!