데이터 분석 시, 개인 리소스를 사용하다보면 컴퓨터 과열 현상 + 병렬 처리로 인한 멀티태스킹 속도 저하 등이 문제가 될 수도 있습니다.
특히, 백그라운드에서 gpu를 열심히 사용하면서 다른 작업을 하고 있자니 불편함을 겪었을 분들이 많았으리라 생각합니다.
이때 구글 코랩을 사용한다면, 이러한 불편함을 어느정도 피할 수 있게 되는데요.
문제는 대용량 데이터셋을 "어떻게 구글 드라이브에 올리느냐?" 입니다.
가장 간단한 예로 캐글의 딥러닝 고전 경연대회 Dogs vs Cats 분류 문제를 살펴보겠습니다.
데이터 자체는 크지 않습니다. 압축파일 853MB 정도 되는데요.
압축 해제 후, 구글 드라이브에 드래그 앤 드롭으로 올린다면 5시간이 넘게 걸릴 수도 있습니다.
하지만 Colab에서 직접 Kaggle API를 활용하여 데이터를 다운 받고, 압축을 해제한다면.. 5시간이 아닌 30초 남짓한 시간으로 모든 문제를 해결할 수 있습니다.
1. 캐글 API Token 발급
우선 캐글에 접속하셔서 API Token 을 발급 받으셔야 합니다.
발급 방법은 다음과 같습니다.
- 캐글 사이트 account 페이지 이동 > API 섹션 내 CREATE NEW API TOKEN 클릭 > 다운로드된 파일 kaggle.json 확인
- 컴페티션의 Data 섹션에서 API 복사
- Colab에서 API 활용
코드로 한 번 확인해보겠습니다.
# colab에서 kaggle 설치
!pip install kaggle
# 이후에 google colab이 제공하는 file을 통해 kaggle json 업로드
from google.colab import files
files.upload()
file.upload를 실행하면, `choose file` 버튼이 생기는데요. 해당 버튼을 클릭하여 json 파일을 업로드 할 수 있습니다.
이젠 `json` 파일이 잘 올라왔는지 확인이 필요하고, kaggle 경로를 설정해주어 작동할 수 있게끔 설정이 필요합니다.
# json 파일 업로드 되었는지 확인
!ls -1ha kaggle.json
# .kaggle 디렉토리 생성
!mkdir -p ~/.kaggle
# json 파일 .kaggle 디렉토리로 이동
!cp kaggle.json ~/.kaggle/
# 권한 변경
!chmod 600 ~/.kaggle/kaggle.json
# 케글 명령어 실행되는지 확인
!kaggle competitions list
위와 같이 캐글에서 진행중인 컴페티션 리스트를 확인할 수 있습니다.
2. 캐글 데이터셋 다운로드
여기서는 dogs vs cats의 데이터셋을 다운받아보도록 하겠습니다.
# competition이 제공하는 데이터셋 다운로드 방법은
# kaggle page내 download api를 제공하는지 확인해봐야합니다
!kaggle competitions download -c dogs-vs-cats
# 압축 파일 해제
!unzip '*.zip'
# 압축 파일 내 압축파일 해제
!unzip test1.zip
!unzip train.zip
위 프로세스를 통해 캐글 데이터를 빠르고 간단하게 구글드라이브에 다운 받을 수 있습니다.