• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

transf 관련해서 질문이 있습니다!

22.04.16 01:16 작성 조회수 500

0

선생님 안녕하세요, 

transf = tr.Compose([tr.RandomCrop(32, padding = 4), tr.RandomHorizontalFlip(), tr.ToTensor(),
tr.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))])

위의 코드와 관련하여 질문이 있습니다. 만약 trainmode가 train으로 설정되어 있다면, 위의 transform으로 데이터 전처리를 해주는데, tr.RandomCrop(32, padding = 4)의 의도가 궁금합니다.

테스트용 이미지에 우선 zero padding을 4개씩 이미지 가장자리에 둘러주고 그런 다음에 32x32의 이미지로 잘라낸다는 의미인가요? 감사합니다!

 

그리고 기본적인 질문인데요, train시에 들어가는 이미지의 size와 validation & test시에 들어가는 이미지의 size는 동일해야 되는것이 맞죠?

 

좋은 주말 되시길 바랍니다!

 

 

답변 1

답변을 작성해보세요.

0

안녕하세요.

 

질문을 3가지 주셔서 나눠서 답변드리겠습니다!

 

1. tr.RandomCrop(32, padding = 4) 는 데이터 증식입니다. 학습 중 과적합을 방지하기 위한 정규화 기술 중 하나 입니다. 즉, 의도는 과적합을 피하기 위함입니다 :)

2. 크롭핑은 테스트셋 전처리에 포함되지 않습니다. 강의에서 언급했듯이 평가용이므로 정규화 기술을 사용하지 않습니다! 메카니즘에 대해서는 정확히 이해하고 계십니다 :) 4겹 패딩 후 그 안에서 32x32 이미지를 뽑아냅니다.

3. 이미지 크기 관련해서는 일반적으로 학습 이미지, 평가 이미지의 사이즈는 동일합니다. 하지만 다르게 하는 경우도 있습니다!

 

감사합니다.