[Pytorch] torch.roll 작동 방식

파이토치로 사용할수 있는 torch.roll에 대한 설명과 실행예시이다.

아래 그림처럼 swin transformer를 사용할때 Shifted Window Partitioning을 적용하기 위해 사용하는 함수이고 이미지를 간단하게 shift할 수 있다.

아래는 실행 결과이다.

왼쪽의 이미지를 torch.roll(img_tensor, shifts=(-100, -100), dims=(1, 2)) 를 통해 변환하면 오른쪽 이미지가 된다.

밀린 픽셀 수는 각각 shifts 값으로 설정한 100이다. 변환된 결과를 보면 알겠지만 shift로 넘어가지는 부분이 이어붙여져서 나오는데 이때 이어붙여지는 부분이 부자연스러워진다. 따라서 위의 swin transformer에서도 이렇게 이어붙여져 나오는 이미지에 대해서는 attention이 적용되지 않도록 -inf를 더하는 식으로 masking을 한다.

Donghun Ryou



Search the website


today visits :

36

total visits :

19673


Comments

답글 남기기