ai-starthon / AI_Starthon2019

60 stars 44 forks source link

14번 inpainting 문제 데이터 질문 #129

Closed Soongja closed 5 years ago

Soongja commented 5 years ago

14번 문제 자체 validation에서는 점수가 잘 나오고 있으나 submit 시에는 점수가 아예 안나와서 도움을 얻고자 데이터 관련해 다시 한 번 질문드립니다. dataloading에 문제가 있을 것이라고 여겨지는데 저의 방식은 아래와 같습니다. 혹시 잘못된 부분이 있으면 짚어주시면 정말 감사할 것 같습니다.

  1. 우선 제 network에 masked와 mask가 동시에 들어가기 때문에 train과 test시 masked, mask 둘의 normalizing 후 픽셀값의 범위가 정확히 일치해야 한다고 생각했습니다. baseline 코드를 보면 train시에는 dataloader에서 나온 masked가 -1~1의 범위를 가지고 그 중 지워진 영역은 0의 값을 가지며, mask는 0,1의 값을 가집니다. 그런데 test loader 쪽을 보면 mask에도 masked와 동일한transform이 적용됨에 따라 mask가 -1,1의 값을 가지게 됩니다. 그래서 train과 동일하게 mask가 0,1의 값을 가지게 하기 위해 mask에는 Normalize는 빼고 ToTensor만을 적용하였습니다. 이 과정에 문제가 있을까요?

  2. 연결되는 질문으로, masked의 지워진 부분이 test시에도 train시와 같이 normalizing 후 0값을 가지는 지 궁금합니다. test시에는 masked의 원본 파일이 이미 지워진 부분을 가지고 있는데, 여기에 normalize를 적용했을 때 지워진 영역이 0의 값을 가지려면 원본이 0~255범위 중 127의 값을 가지고 있어야 할 것이기 때문입니다. readme에서 sample image로 제공해주신 input의 지워진 부분이 회색을 띄고 있는게 실제로 127값이기 때문인가요? 만약 원본의 지워진 부분이 제 생각과 달리 127 근처가 아니라 0의 값을 가지고 있다면 저의 dataloader를 수정해야 할 것으로 생각됩니다.

  3. 마지막으로, 지난번에 동일한 질문을 했으나 확인 차원으로, evaluation시 GT도 normalize가 되어 -1~1의 범위로 loading이 되는지 확인하고 싶습니다.

글이 길었네요. 답변 기다리겠습니다!

youngjung commented 5 years ago

안녕하세요,

  1. mask 는 load시 transform 후에 0-1을 가지도록 저장되어있습니다. 원래코드대로 쓰셔야 올바른 eval이 됩니다.
  2. 네 지워진 영역은 normalize 후 0이 됩니다.
  3. 네 -1~1입니다.

화이팅입니다 :)

Soongja commented 5 years ago

0과 255값을 가진 mask이미지에 ToTensor와 Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))를 적용하면 -1과1의 값을 가지게 되는데, 그러면 test set의 mask 원본 이미지가 127과 255 값을 가지고 있다는 뜻인가요?

youngjung commented 5 years ago

네 맞습니다

HotaekHan commented 5 years ago

@nsml-admin @youngjung submit -t로 확인해본 결과, 주어지는 mask 데이터의 min값이 -0.1686, 0.2706인 샘플들이 있습니다. 픽셀값으로 환산해보면 106, 92정도인데요. 윗 답변같이 127, 255 값만 가지는 건 아닌 것 같습니다. 그리고 혹시, 주어지는 masked 데이터도 위와 같이 127값을 가지지 않는 mask가 곱해진 데이터가 불러와지는건가요?? 혹시 의도를 하신건지, 데이터에 오류가 있는건지 궁금합니다.

youngjung commented 5 years ago

231 에서 답변드렸습니다 :)