[카테고리:] Engineering
-
[Pytorch] torch.fft 작동 방식
파이토치를 이용해 이미지를 frequency domain으로 변환시켜주는 함수들에 대해 정리해보려 한다. 파이토치의 torch.fft 모듈은 푸리에 변환(Fourier Transform)을 수행하는 다양한 함수를 제공한다. ( 관련 모든 함수들은 다음 링크를 참조 https://pytorch.org/docs/stable/fft.html ) 이번 글에서는 torch.fft.fftn, torch.fft.fftshift, torch.fft.rfftn, 그리고 역변환인 torch.fft.ifftn의 작동 방식을 설명하고 실행예시를 정리하려 한다. torch.fft.fftn 가장 먼저 torch.fft.fftn 이다. n 차원의 tensor에 discrete Fourier transform을 적용시켜주는…
-
[Pytorch] torch.roll 작동 방식
파이토치로 사용할수 있는 torch.roll에 대한 설명과 실행예시이다. 아래 그림처럼 swin transformer를 사용할때 Shifted Window Partitioning을 적용하기 위해 사용하는 함수이고 이미지를 간단하게 shift할 수 있다. 아래는 실행 결과이다. 왼쪽의 이미지를 torch.roll(img_tensor, shifts=(-100, -100), dims=(1, 2)) 를 통해 변환하면 오른쪽 이미지가 된다. 밀린 픽셀 수는 각각 shifts 값으로 설정한 100이다. 변환된 결과를 보면 알겠지만 shift로 넘어가지는 부분이…
-
Git 개념 정리 (Branch, Workflow, Reset)
Why do we need a branching? Branch가 필요한 이유들은 아래와 같다 Branch를 관리하는 방법은 정해져 있지 않고 하기 나름이다. 복잡하고 대규모 프로젝트를 진행할수록 그 중요성이 높아지고 유용해진다. Git Workflow 대략적인 Git에서의 Workflow 의 이해를 돕기 위해 아래의 그림을 먼저 보자 Git에서 Head는 현재 branch를 가리킨다. 이전 포스팅에서 설명했지만 Working Directory는 작업자가 직접 작업을 하고 있는…
-
Git 개념 정리 (What is Git?, Git states)
What is Git? A distributed version control system (DVCS), 즉 분산 버전 관리 시스템의 일종이다. 아래 그림은 다른 local 버전 관리, 중앙 집중형 버전 관리 시스템과 분산 버전 관리 시스템을 그림으로 비교한 것이다. Git (분산 버전 관리 시스템) 에서는 각 Local에서도 버전을 관리할 뿐만 아니라 Server에서도 Version을 관리하고 각각 다른 Computer끼리도 버전을 공유하고 같이 관리할…
-
[Pytorch] torch.nn.PixelShuffle/PixelUnshuffle 작동 방식
파이토치 라이브러리 중 하나인 pixelshuffle과 pixelunsuffle 함수의 작동 방식을 간단히 살펴보려한다. Image Restoration 분야에서도 down sampling과 up sampling을 할 때 많이 활용하는 함수이다. 말 그대로 픽셀들끼리 섞어서 그룹을 만들어 채널을 줄이면서 사이즈를 늘리거나(pixel shuffle) 반대로 픽셀들끼리 그룹을 만들고 채널 별로 펼쳐서 채널을 늘리면서 사이즈를 줄이는 방식이다(pixelunsuffle). 공식 설명은 아래와 같이 되어있다. 작동 방식은 정확히 안…