[프로젝트 1 - 이미지 처리] 7. 시행착오

Jade·2021년 4월 6일
0

부스트캠프 AI Tech

목록 보기
36/54

프로젝트 1 - 시행착오


  • 오류 기록
    Input type (torch.cuda.ByteTensor) and weight type (torch.cuda.FloatTensor) should be the same

    torch의 내장 Dataset 클래스로 데이터셋을 만들었을 때 return 타입은 ByteTensor가 된다. 모델에 넘겨주기 전에 input.float().to(device)으로 형변환해서 넘겨주면 된다.

  • 모델 제출 기록

    • 간단한 CNN(3개 레이어), epoch 20, batchsize 8 - 검증 정확도 약 65퍼센트 정도,
      acc : 11.6000%, f1 score : 0.0100

    • ResNet50, epoch 5, batchsize 8 - 학습, 검증 정확도는 되게 잘 나왔는데...
      acc : 10.0476%, f1 score : 0.0502
      하이퍼파라미터를 바꿔 가면서 몇 번 더 시도했는데 성능은 그대로였다.

    • EfficientNet, epoch 5, batchsize 8 - 이것도 마찬가지.
      acc : 10.4286%, f1 score : 0.0547
      이 모델 역시 하이퍼파라미터를 바꿔서 더 제출해 봤는데 테스트 성능이 엉망이었다.

  • 문제의 원인 발견!
    DataLoader 객체를 만들어서 테스트셋을 불러올 때 별 생각 없이 shuffle 옵션을 True로 설정했었다. 결과를 제출할 때는 submission.csv 파일의 순서대로 불러와서 예측해야 하는데 셔플해서 불러오니까 순서가 달라졌고 결과가 엉망으로 나왔던 것!
    수정해서 EfficientNet을 기반으로 fine tuning한 모델의 결과는 다음과 같다.
    acc : 77.2063%, f1 score : 0.7099
profile
반가워용

0개의 댓글