Q&A#

2/M 크기의 window 의미?#

3.2. Shifted window partitioning in successive blocks에서 2/M 크기의 window를 가진다는 것은 top-left 시작 부분만 말하는 걸까요?

넵 제가 이해한 바로는 top-left를 기준으로 2/m x 2/m 만큼 이동하는 것입니다

cyclic shift?#

cyclic shift가 이해가 잘 안되요;;

https://towardsdatascience.com/a-comprehensive-guide-to-swin-transformer-64965f89d14c 이 링크에 gif로 표현되어 있어서 이해하는데 도움이 되실겁니다!

register_buffer?#

register_buffer가 뭔가요?

register_buffer가 간단하게 생각하면 학습이 되지 않도록 만들어주는 것 같습니다. 음… 대표적으로 batch normalization을 예로 들수가 있는데 BN의 경우에도 학습이 되지 않는 대신 모델을 저장할때 state_dict에 eps와 같은 값이 저장됩니다. 이렇듯 relative bias도 학습이 일어나지는 않지만 state_dict에 그 값을 저장하기위해서 register_buffer를 사용한 것 같습니다. timm 코드를 다시보니 register_buffer에 들어가는 값은 get_relative_position_index함수를 통해서 단순히 0으로 채워진 값이 아닌 relative_coords 값이 들어가네요.


Edit by 김주영