Kaggle - Colab API 연동
Page content
개요
- API 토큰을 내려받은 후, 구글 코랩에서 데이터를 다운로드 받도록 한다.
API 토큰 발급
Kaggle Profile
-Settings
-API
를 순차적으로 클릭 후,Create New Token
버튼을 클릭한다.
- 아래 화면처럼 다운로드를 받을 수 있다.
Google Colab API 코드 업로드
- 이제 해당 파일을 바탕화면 등 적당한 곳에 위치시킨 후 아래 코드를 실행한다.
# kaggle.json 파일을 업로드하세요.
from google.colab import files
files.upload()
- 마지막으로
~/.kaggle
폴더를 만들고 키 파일을 복사한 후, 보안을 위해 현재 사용자만 이 파일을 읽을 수 있도록 하는 명령어(chmod 600
)를 실행한다.
!mkdir ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
캐글 데이터 다운로드
- 이제 사용할 데이터를 내려받는다.
!kaggle competitions download -c dogs-vs-cats
- 만약
403 Forbidden
에러 발생 시, 이는 데이터셋에 연관된 규칙에 미동의한 상태로 동의를 진행해야 한다. https://www.kaggle.com/c/dogs-vs-cats/rules 페이지로 이동 후,I Understand and Accept
버튼을 누른다.
압축 풀기
- 훈련 데이터는 dogs-vs-cats.zip 이름의 압축 파일이다.
- unzip 명령어를 활용하여 압축 파일을 풀도록 한다.
- 압축 해제 시, unzip 메시지가 출력되지 않도록 옵션을 추가한다. (-qq)
!unzip -qq dogs-vs-cats.zip
!unzip -qq train.zip
데이터셋 분리
- 훈련 데이터, 검증 데이터, 테스트 데이터셋으로 분리하는 코드를 작성한다.
import os, shutil, pathlib
original_dir = pathlib.Path("train")
new_base_dir = pathlib.Path("cats_vs_dogs_small")
def make_subset(subset_name, start_index, end_index):
for category in ("cat", "dog"):
dir = new_base_dir / subset_name / category
os.makedirs(dir)
fnames = [f"{category}.{i}.jpg" for i in range(start_index, end_index)]
for fname in fnames:
shutil.copyfile(src=original_dir / fname,
dst=dir / fname)
make_subset("train", start_index=0, end_index=1000)
make_subset("validation", start_index=1000, end_index=1500)
make_subset("test", start_index=1500, end_index=2500)
- 위 코드를 실행하면 왼쪽 그림과 같이 설정 되어 있는 것을 확인할 수 있다.
- train 폴더에는 각각 1,000개의 이미지가 존재한다.
- validation 폴더에는 각각 500개의 이미지가 존재한다.
- test 폴더에는 각각 1,000개의 이미지가 존재한다.