DongHwanJang / SPADE_Colorization

Other
2 stars 0 forks source link

loss lambda 계산이 잘못됨 #36

Closed ThisIsIsaac closed 4 years ago

ThisIsIsaac commented 4 years ago

https://github.com/DongHwanJang/SPADE_Colorization/commit/474876868e9ea4c3b825e43d0a9441fda975ca42 에 적용된 lambda 를 backward 직전에 계산해주는 변화 후 RGB D 에서 학습이 엄청 안됬음. 아마 gradient 곱셈 자체가 잘못 됬을거라고 @DongHwanJang 이 추정함.

ThisIsIsaac commented 4 years ago

가장 쉬운 디버깅 방법은 weight 적용 후 / 전 둘다 로깅해보고 적용 후에 로스그래프 양상이 이전 run 들과 비슷하다면 문제 없는거로 생각해도 괜찮을 것 같다.

ThisIsIsaac commented 4 years ago

코드를 읽어보니 lambda 계산이 잘못된게 아니라 그냥 RGB 로 train 한 discriminator 가 성능이 안나왔던 것 같음. 아직 LAB 에는 테스트 해보지 않음. FID 와 머지한후 두개를 동시에 테스트해 볼 예정,

ThisIsIsaac commented 4 years ago

https://app.wandb.ai/eccv2020_best_paper/SPADE%20Colorization/runs/7gzjqska 여기서 FID 와 lambda 곱셈 동시에 테스트중. @DongHwanJang

ThisIsIsaac commented 4 years ago

이건 @DongHwanJang 형이 non local block 없이 spade + decoder 만 있는 구조에서 돌려보고 확인해보기로 함. spade + decoder 에선 어느정도 퍼포먼스가 나올지 아니까 아웃풋을 비교해보면 버그가 있는지 아닌지 확실하게 알듯.

ThisIsIsaac commented 4 years ago

Discrimiantor RGB + 버그가 있을 수 있는 코드 인경우엔 결과가 처참하다. https://app.wandb.ai/eccv2020_best_paper/SPADE%20Colorization/runs/rftfss3k

해석이 3가지 있을 것 같다:

  1. discriminator 가 너무 잘해서 안그래도 못하는 generator 학습이 망함
  2. discriminator 가 더 못하져서 학습에 도움이 안됨
  3. lambda 버그

@DongHwanJang 이번 run 에선 lambda 버그가 있는지 없는지를 d_rgb 란 변수 때문에 판별할 수 없으니 target_only 만으로 돌려봐야할 것 같아.

DongHwanJang commented 4 years ago

2번으로 생각됨 D_RGB에서 안되던건 1. D에 RGB로 넣는다고 생각보 D가 더 잘하지 않았고 2. 초반에 reference_img = tgt_img로 했어야 했는데 그렇게 하는 것을 깜박함.

실험을 돌려봤을 때는, dictionary에 넣어서 하진 않았지만 define할 때 바로 각기 다른 lambda를 곱해주면 그래도 understandable한 output이 나왔었음!

그렇기에 lambda에는 문제가 없다 생각하고 issue를 닫는다.