boostcampaitech3 / level1-image-classification-level1-nlp-10

0 stars 4 forks source link

KfoldCV 구현 #23

Closed greenare closed 2 years ago

greenare commented 2 years ago

추가 및 변경한 점

  1. KfoldCV
    • 폴더 별로 KfoldCV를 하기 위해 우선 age/gender를 조합하여 6개의 class를 만든 후 train_df에 저장하였습니다. (MaskBaseDataset.init에서 실행)
    • sklearn StratifiedKfold 를 활용해서 class를 바탕으로 Kfold train_idx, valid_idx를 뽑습니다.
    • 기존 MaskSplitByProfileDataset.setup에서는 _split_dataset에서 받아온 train_idx, valid_idx를 가지고 self.indices를 만들지만, Kfold의 경우 StratifiedKfold에서 idx를 생성하기 때문에 setup 함수를 수정하고, _split_dataset, split_dataset을 하나로 합쳤습니다.
    • MaskSplitByProfileDataset.split_dataset에서 얻은 train_set, val_set을 가지고 기존과 동일한 작업을 진행합니다.
    • Kfold 용 args를 추가했습니다. default 값은 true입니다.
    • dataset을 변경했기 때문에 반드시 train.py 뒤에 --dataset=MaskSplitByProfileDataset 을 추가해야 합니다.
    • 제대로 Kfold가 이뤄지는지 확인하려면 학습 시작 부분에 print문 주석 해제하고 dataset.을 train_df 앞에 추가하시면 됩니다.

참고한 url: https://github.com/boostcampaitech2/image-classification-level1-19/blob/e6ae5d5e176d64aa0ea19ee9d038d711e51ecc43/code/dataset.py

  1. Automatic Mixed-Precision
    • 오타를 수정했습니다.