Deeplearning code를 작성하다 보면 항상 tensor의 차원을 관리하는 것에서 어려움을 마주친다. 물론 Pytorch나 Numpy를 활용해서 차원을 관리할 수 있지만 문제는 `직관적`이지 않다는 것이다. 실제로 4차원 이상부터는 사람이 상상하기 힘들다.. 이렇게 어려운 차원관리를 효율적으로 할 수 있는 라이브러리가 있다. 바로 `Einops`이다. 이 라이브러리를 처음 발견한 코드는 ViT를 Pytorch로 구현한 코드였다 처음 이 코드를 보았을때, 기존 Python의 문법에서 본적이 없는 하이퍼 파라미터의 형태를 갖고 있어서 조금은 혼란스러웠다. out = torch.matmul(attn, v) out = rearrange(out, 'b h n d -> b n (h d)') return s..