Boostcamp AI Tech

[주말 실험 일지_토] Image Classification

ju_young 2021. 8. 30. 23:05
728x90

Baseline Code

1. python 파일로 baseline이 나온 것을 기준으로 지금까지 구현한 코드를 적용 -> 같은 팀원들에게 공유하여 빠르게 실험할 수 있게 진행

 

2. inference 부분 코드를 수정하지 않음 -> 모델을 load할 때 error가 발생 -> model에 DataParallel을 적용하고 model.state_dict()를 save한다면 inference에도 model을 load 할 때 DataParallel을 적용하고 load_state_dict를 실행해야함

Augmentation

1. 고정된 hyperparameter(batch size, lr, epoch, loss, optimizer, lr_scheduler, earlystopping-patience)와 고정된 model(resnet50)을 사용하여 augmetation 추가 적용했을 때 성능 차이를 확인 할 수 있다고 생각 -> model parameter들의 requires_grad를 모두 False하여 학습이 되지 않게 적용

 

2. albumentations의 ToTensorV2를 사용했을 시 발생하는 error 때문에 pytorch.transform의 totensor, nomalize를 따로 적용 -> solution : torchvision transforms에서는 Normalize 이전에 ToTensor를 적용해야하고 albumentations는 Normalize 이후에 ToTensorV2를 사용해야 함

 

3. 집중적으로 분포되어있는 중년층에 overfitting의 위험이 높다고 판단 -> resnet50과 resnet152를 사용하고 집중적으로 분포되어있는 중년층에 일반화를 위해 50% cutmix를 적용 -> 실험 결과 cutmix를 적용한 결과와 유사 -> 코드 또는 dataset이 잘못되었다고 생각

Dataset

1. resnet152를 사용하고 MaskSplitByProfileDataset(사람을 기준으로 나눈 Dataset)을 적용 -> 실험 결과로는 BaseMaskDataset(이미지를 기준으로 나눈 Dataset)이 score가 더 높았지만 LB점수가 비슷 -> MaskSplitByProfileDataset을 사용했을 때 overfitting이 낮아졌다고 생각

 

 

728x90