공통점 : tensor의 형태를 바꾸는 pytorch의 기능
* reshape, view vs permute의 차이
- reshape, view에서는 ()괄호 안에 넣을 엔트리들이 전체 텐서 수 (사이즈)와 같아야 한다. 예를 들어 torch.randn(1,16)을 하면 총 16개의 텐서가 생성되는데 reshape(2,8)과 같이 모든 엔트리의 곱이 16이 되야 한다. 이는 view도 마찬가지다.
- 하지만 permute는 ()안에 들어가는 수가 index를 의미한다.
* reshape vs view 차이
- reshape는 contiguous, non-contiguous tensor와 무관하게 적용 가능하다. view는 contiguous한 tensor에만 적용 가능하다. ( 또한 view는 남은 행 또는 열의 값을 모르겠다면 -1을 적어도된다! reshape도 가능하는지는 모르겠음)
* Permute 적용
- 순서 바꾸기라고 생각하면 쉽다.(혹은 축 변경)
- ()안의 엔트리들이 index를 의미한다.
- 그래서 엔트리의 수가 tensor를 만들때 사용했던 ()안의 엔트리 수와 같아야 한다.
ex) b = torch.randn(3,4,5)
b.permute(0,2,1) = torch.randn(3,5,4) 이렇게 된다.
* 바뀌는 형태에서 어떤 수가 어느 위치로 가고 하는지는 파악하지 못함!
* contiguous와 non-contiguous가 뭔지 알아야 할 듯 !
'컴퓨터언어정리 > Pytorch' 카테고리의 다른 글
[Pytorch 용어 정리] Squeeze, Unsqueeze (0) | 2022.05.16 |
---|