torch로 차원 줄이기(squeeze) 늘리기(unsqueeze) 변환하기(view)
원하는 데이터의 차원수가 데이터셋의 크기를 맞춰주기위해 불 필요하게 커져있는 경우가있다.
하지만 이 데이터를 단독으로 사용할경우 squeeze 반대로 맞춰야 하는경우 unsqueeze를 사용한다.
squeeze
squeeze의 경우 차원의 크기가 1인 불필요한 차원을 제거한다.
예를들어 [[1],[2],[3]]]] 의경우 [1,2,3] 으로 표현해도 문제가 크게 없다 이러한 상황에 맞게
3x1 에서 길이가 3인 리스트 즉 (3,) 으로 변경을 한다는 것이다.
(줄일텐서).squeeze()
unsqueeze
반대로 상황에 의해 (3,)을 3x1의 형태로 표현을 해야할 경우가 있다. 이러한 경우 unsqueeze를 사용한다. 즉 (3,) 인 리스트를 3x1의 형태로 변경한다.
(늘릴텐서).unsqueeze()
view
view는 원하는 형태로 데이터를 변환해준다.
3차원 형태의 데이터셋에서 2차원으로 변경하고자 할 때 원소의 갯수가 맞게 변환하는데
예를 들어
4x4x3 (48개) 의 데이터셋을 (바꿀텐서).view(-1,3)을 한다면 16x3 크기의 2차원 형태의 데이터셋으로 변환해준다.
(바꿀텐서).view(-1,3)
소개한 세가지는 데이터셋 파이프라인을 구축할 때 매우 자주쓰인다!!
참조
https://wikidocs.net/52846