Image Classification Hackathon: Guess the Type of Icons in the Data!

Dacon Hackathon | Algorithm | Begin | Vision | Classification | Accuracy

  • moneyIcon Prize : DASCHOOL Pro Subscription
  • 2025.03.04 ~ 2025.04.30 09:59 + Google Calendar
  • 744 Users Completed

 

[Public 0.88] VGG19 dense evaluation 버전

2025.04.10 12:19 720 Views language

Training 시 50% 확률로 batch 이미지들에 Horizontal Flip(수평반전)을 적용.
VGG19의 classifier를 1x1 convolution layer로 변경하여 dense evaluation으로 평가해서 파라미터 규모 감소.
p.s.) EISLab_이희원님의 코드(https://dacon.io/competitions/official/236459/codeshare/12245?page=1&dtype=recent)를 일부 참고하였습니다.

Code
Login Required
0 / 1000
최재욱
2025.04.11 20:36

안녕하세요 혹시 이 코드를 그대로 실행하면 정확도가 다른데 추가적으로 수정해야 될까요?

song9
2025.04.11 22:12

test_transform에 ToPILImage(), ToTensor()를 빼먹었네요;; 수정했습니다. 다시 해보니 public 0.88 나옵니다.

최재욱
2025.04.12 01:17

네 확인했습니다. 감사드립니다

최재욱
2025.04.12 01:27

그런데 public 상에서 0.10 이 나오는 것 같습니다
val_acc 는 0.85가 나옵니다

song9
2025.04.14 10:39

확인해보니 DataLoader에 Generator까지 지정해줘야 완전히 랜덤성 제어가 되네요.

g = torch.Generator()
g.manual_seed(SEED)
train_loader = DataLoader(train_dataset, batch_size=BATCH_SIZE, shuffle=True, collate_fn=collate_fn_train_transform, generator=g)

이렇게 고정하고 제출했을 때 2번 모두 0.888 나왔습니다. 

이외에 생각해볼 수 있는 문제는 모델 파라미터 초기화 문제입니다.VGG 논문에서도 깊은 layer의 네트워크를 학습시킬 때 11 weights layer로 구성된 네트워크 중 7개의 layer 파라미터를 복사해서 파라미터 초기화에 사용했습니다. 저도 vgg를 사용하는 이후 코드에서는 vgg11을 먼저 학습시키고 feature extractor에서는 4개의 conv. layer를, classifier에서는 3개의 layer 전부를 복사해서 파라미터 초기화에 사용합니다.