• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    해결됨

실제 캐글(Kaggle) 문제 풀고, 제출해보며, 성능 개선 기법 익히기2 강의에서 질문입니다

23.10.19 15:26 작성 23.10.19 15:28 수정 조회수 247

1

실제 캐글(Kaggle) 문제 풀고, 제출해보며, 성능 개선 기법 익히기2 강의 17:30 부분에서 질문이 있습니다. 이번 강의에서는

transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])

와 같이 이미지 데이터에 Normalization을 적용하였는데요, 

from transformers import ViTFeatureExtractor 
feature_extractor = ViTFeatureExtractor.from_pretrained('google/vit-base-patch32-224-in21k') 
feature_extractor

다음 코드와 같이 vit-base-patch32-224-in21k 모델에서 적용된 image_mean과 image_std를 확인해 보니,

"image_mean": [ 0.5, 0.5, 0.5 ], "image_std": [ 0.5, 0.5, 0.5 ] 와 같이 결과가 나왔습니다. 

 

그렇다면, 학습 데이터에 Normalization을 적용할 때에도 [ 0.5, 0.5, 0.5 ], [ 0.5, 0.5, 0.5 ] 값을 적용해야 하는 것이 아닌지 여쭙고 싶습니다. 

 

감사합니다!

답변 1

답변을 작성해보세요.

1

안녕하세요. 답변 도우미입니다.

transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) 이런 값들은 일반적으로 ImageNet 데이터셋에 대해 학습된 모델에서 많이 볼 수 있는 값이긴 하거든요.

그런데, 말씀해주신 대로, 현재 해당 모델의 사전 학습된 동안 사용했던 정규화 값이 [0.5, 0.5, 0.5]와 [0.5, 0.5, 0.5] 로 보입니다. 그렇다면, 말씀해주신대로 수정해보셔도 좋을 것 같습니다. 해당 모델이 수시로 조금씩 업데이트가 되는 것인지, 정확한 정보를 조금 찾기 어려운 부분도 있긴 한데요.

다만, 꼭 동일한 값으로 하지 않으면, 심각하게 문제가 있는 정도는 아니라서, 이 부분은 한번 적용해보신 후, 결과가 더 좋게 나오는지를 한번 확인해보신 후, 둘 중에 결과가 좋은 쪽으로 쓰시면 좋을 것 같습니다.

감사합니다.