해결된 질문
작성
·
346
·
수정됨
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] 로 보입니다. 그렇다면, 말씀해주신대로 수정해보셔도 좋을 것 같습니다. 해당 모델이 수시로 조금씩 업데이트가 되는 것인지, 정확한 정보를 조금 찾기 어려운 부분도 있긴 한데요.
다만, 꼭 동일한 값으로 하지 않으면, 심각하게 문제가 있는 정도는 아니라서, 이 부분은 한번 적용해보신 후, 결과가 더 좋게 나오는지를 한번 확인해보신 후, 둘 중에 결과가 좋은 쪽으로 쓰시면 좋을 것 같습니다.
감사합니다.