파이토치에서 텐서의 모양에 대해서 추론하기
- 원글 : Reasoning about Shapes in PyTorch
- 파이토치에서 모델을 정의하여 사용할 때, 한 레이어의 매개변수는 이전 레이어의 출력 형태와 깊은 관련을 갖게 된다.
- nn.Linear 레이어에 입력되는 특성 개수를 의미하는 in_features는 입력의 맨 마지막 차원의 크기인 size(-1)과 일치해야 한다.
- 컨볼루션 연산과 같은 경우에는 모양에 대한 계산을 위해 복잡한 수식이 필요하기도 하다.
- 레이어의 모양에 대해 알기 위해서, 무작위로 생성된 입력 텐서에 대해서 포워드 패스(forward pass) 연산을 수행해 볼 수도 있지만, 이는 메모리와 연산 측면에서 낭비이다.
- 즉, 어떤 데이터를 생성하고 직접 입력하는 대신에, 레이어의 출력 형태를 결정하기 위해서 메타(meta) 디바이스를 사용할 수 있다.
댓글