본문 바로가기

AI

Colab 에서 Kaggle 데이터 API 로 받기

개요

캐글에서 데이터를 받기 위해서는 API 키를 사용 해야 합니다.

Colab 의 Secrets 탭에 캐글 username 과 key를 저장해 놓으면 노트북에서 간편하게 데이터를 가져 올 수 있습니다.

 

 

1. 우선 캐글에 접속후 계정에서 Settings 로 들어 갑니다.

 

2. API 에서 Create New Token 을 클릭 후 진행 하면 kaggle.json 파일을 다운 받을 수 있습니다.

 

3. 코랩에서 아래 Secrets 으로 들어갑니다.

 

4. 새 보안 비밀 추가를 해서 아래 와 같이 입력 후 값에 다운 받은 kaggle.json의 usernae 과 key 의 값을 입력 합니다. 노트북 액세스를 활성화 합니다.

 

5. 아래와 같이 코랩 cell 에서 저장 된 캐글 username 과 key 를 불러와 kaggle.jon 을 생성 할 수 있습니다.

from google.colab import userdata
key = userdata.get('KAGGLE_KEY')
username = userdata.get('KAGGLE_USERNAME')
with open('kaggle.json', 'w') as f:
    f.write(f'{{"username":"{username}","key":"{key}"}}')

 

6. 또는 다운 받은 'kaggle.json' 파일을 직접 코랩에 업로드할 수 있습니다.

# kaggle.json 파일을 업로드하세요.
from google.colab import files
files.upload()

 

7. 'kaggle.json' 파일이 생성되었다면 적절한 위치로 이동시키고 파일 권한을 변경한 다음 캐글에서 데이터를 다운로드 합니다. 코랩 cell 에서 아래 와 같이 입력 합니다.

!mkdir ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!kaggle competitions download -c dogs-vs-cats-redux-kernels-edition

 

8. 아래 와 같이 403 - Forbidden 에러 발생 시 해당 데이터셋에 연관된 규칙에 동의 해야 합니다.

 

9. 아래 데이터 셋을 예로 들어 Rules 로 들어가 약관 동의를 진행 합니다.

https://www.kaggle.com/competitions/dogs-vs-cats-redux-kernels-edition/rules

 

10. 아래 와 같이 다시 데이터를 다운로드 합니다.

!kaggle competitions download -c dogs-vs-cats-redux-kernels-edition

 

11. 다운로드 받은 zip 파일 압축을 해제 합니다.

!unzip -qq dogs-vs-cats-redux-kernels-edition.zip
!unzip -qq train.zip

 

12. 이제 데이터를 이용해 모델을 학습할 수 있습니다.

# image_dataset_from_directory를 사용하여 이미지 읽기
from tensorflow.keras.utils import image_dataset_from_directory

train_dataset = image_dataset_from_directory(
    new_base_dir / "train",
    image_size=(180, 180),
    batch_size=32)
validation_dataset = image_dataset_from_directory(
    new_base_dir / "validation",
    image_size=(180, 180),
    batch_size=32)
test_dataset = image_dataset_from_directory(
    new_base_dir / "test",
    image_size=(180, 180),
    batch_size=32)