부스트캠프 AI Tech 4기/Daily Tasks & Time Log
2022-11-01 (화) Daily Tasks & Time Log
Amor Fati by Nietzsche
2022. 11. 1. 09:21
Daily Tasks
- ✅ 데일리스크럼 참여 (10:00 ~ 10:10)
- ✅ 피어세션 참여 (16:00 ~ 17:00)
- ✅ 오피스아워 참여 (17:00 ~ 18:00)
최영선 조교 Image Classification using Azure Machine Learning - MLaaS(ML as a Service) - ⏳ CV 기초대회
- dataset.py 코드 분리
- 팀원 VSCode 설정
- GitHub repository
- .vscode
- dataset.py 추가
- 모델 성능 개선 시도
- ✅ 수면 인공지능 경진대회 참가 신청서 작성
- ⏳ <함께 자라기 (애자일로 가는 길)> 독서
Time Log
09:30 ~ 09:55 오늘 할 일 정리
10:00 ~ 10:25 데일리스크럼
10:25 ~ 12:00 팀원 VSCode 설정
12:00 ~ 13:00 점심식사
13:00 ~ 14:00 dataset.py 수정 및 공유, 모델 학습 및 평가 진행
16:00 ~ 16:50 피어세션 참여
18:00 ~ 18:30 저녁식사
18:30 ~ 19:40 모델 학습 및 평가 진행
20:00 ~ 20:50 필라테스
데일리스크럼
선규
- 주영님 셋팅에서 모델만 변경해서 시도해봄. ResNext, EfficientNet F1-score는 EfficientNet이 더 좋게 나왔다. Resize를 256로 해봤는데 7번째 epoch에서 갑자기 뚝 떨어져서 128로 해보니 똑같이 7번째 떨어졌다가 다시 올라감. 뚝 떨어진 이유를 모르겠음. EfficientNet은 모델마다 권장되는 사이즈가 있다고 해서 그에 맞게 시도해볼 예정. EfficientNet B4 사용
주영
- 얼굴 떼어내는 것 YOLOv7에서 실패한 이후, 미션에서 숨겨진 힌트가 있지 않을까 싶어서 다시 미션을 보니, 스케쥴러를 따로 안 넣었어서 Optimizer Scheduler를 넣어볼 수 있을 것 같고, 미션에는 DarkNet53이 주어져있길래 feature extract로써 많이 사용된다고 해서 ResNet18을 DarkNet53으로 변경해볼 예정. K-Fold cross validation할 때 loop를 K번 돌텐데, 그 결과로 나오는 K개의 모델에 대해 앙상블을 적용하는 out of fold 앙상블을 적용해보려고 함. 미션에서 사용한 Augmentation을 사용해봤는데 결과가 매우 안 좋았음. 테스트셋에는 Augmentation을 적용하지 않아서 그런 것일까. 테스트셋에도 Augmentation을 적용해서 돌린 결과를 업로드해볼 예정
- 60세 이상은 엄청 적고, 30세 이하와 30~60세는 거의 비슷하니까 60세 이상과 60세 미만을 focal loss로 해보고, 60세 이상을 잘 맞추면 그 뒤에 60세 미만을 다시 30세 미만과 30~60으로 구분하는 방식으로 시도해볼 예정
장원
- 어제 피어세션 이후로 모델 성능 개선에 대한 시도를 하진 않았다. 오늘 모델 성능 개선 위주로 진행할 예정.
- 그 외에는 팀원들에게 dataset.py 사용법과 VSCode 셋팅을 도와줄 예정.
세준
- epoch 8번째에서 뚝 떨어져서 그 전 모델을 넣어봐서 제출해봤더니 거의 꼴찌에 가까웠다.
태환
- K-Fold 해본 결과, 학습이 잘 안 되는 모습을 보임. Age가 말도 안되게 안되고, Mask랑 Gender를 거의 다 맞추고, Age 때문에 최종 45% 정도 나왔음. Age에 대해 어떻게 올릴 수 있을지 고민중
- 60세 이상에 대한 데이터가 거의 맞는게 없음. 30~60대도 30세 이하 또는 60세 이상으로 헷갈려하는 경우가 있음.
피어세션
장원
- 주영님 코드에서 ConcatDataset을 돌려보니, DataLoader가 iterate될 때 batch가 받을 수 있는 데이터 타입이 정해져있었음. 일단은 BaseImageDataset의 __getitem__에서 이미지랑 최종라벨만 넘기도록 수정함.
total_dataset = ConcatDataset([base_dataset, horizontal_flip_old_dataset, horizontal_flip_incorrect_mask_dataset]) train_dataset, valid_dataset = split_dataset(total_dataset)
TypeError: default_collate: batch must contain tensors, numpy arrays, numbers, dicts or lists; found <enum 'ImageClass'> TypeError: default_collate: batch must contain tensors, numpy arrays, numbers, dicts or lists; found <class 'dataloader.data.ImageItem'>
- 위에서와 같이 기본 데이터셋에 2가지 데이터셋을 추가하였다.
- 60세 이상의 데이터가 30세 미만과 30세 이상 60세 미만에 비해 부족해서 60세 이상의 데이터셋을 추가
- 마스크 착용 상태에서 아예 마스크가 없는 normal보다 코 아래까지 살짝 내려서 착용하고 있는 incorrect를 맞추기 어렵다고 생각하여 incorrect 데이터셋을 추가
- dataset.py에 EvalImageDataset 추가 필요. 동일한 first, last augmentation을 주기 위해서.