728x90
차원 변경을 위함.
* torch.unsqueeze(input, dim)
- input : tensor
- dim : int
1을 어느 dim에 추가 할건지? 정하는 것
x = torch.unsqueeze(x,dim)
[ 예시]
오리지널 입력을 만들어 놓는다. (3, 3)형태임.
이와 같이 dim을 0으로 한 후 unsqueeze 하면 0차원 자리에 1이 들어가는 것을 알 수 있음.
모양 또한 (1, 3, 3)에 맞춰서 바뀜
이와 같이 dim을 1으로 한 후 unsqueeze 하면 1차원 자리에 1이 들어가는 것을 알 수 있음.
모양 또한 (3, 1, 3)에 맞춰서 바뀜
이와 같이 dim을 2으로 한 후 unsqueeze 하면 2차원 자리에 1이 들어가는 것을 알 수 있음.
모양 또한 (3, 3, 2)에 맞춰서 바뀜
예시에서 본 것과 같이 차원 변경을 하고 싶을 경우에 사용됨.
* torch.squeeze(input, dim=None)
- input : tensor
- dim : int
1인 차원을 모두 제거해줌.
[예시]
위 예시와 같이 squeeze는 unsqueeze된 텐서의 모양에서 1인 차원을 제거해줌
* torch.cat(input, dim=0, *, out=None)
- input : tensor
- dim : int
주어진 텐서를 연결해줌. 이를 실행하기 위해 텐서의 모양이 같거나 비어 있어야 함.
[예시]
위와 같이 오리지널 텐서가 주어졌을 때
cat을 취하면 위와 같이 원하는 모양대로 이어지는 것을 알 수 있음.
y 와 같이 x와 다른 모양의 텐서가 주어졌을 때
cat을 취하면 위와 같이 차원이 맞지 않는다는 오류가 뜸!
728x90
'STUDY > 인공지능' 카테고리의 다른 글
까먹지 않기 위한 파이토치 공부 내용 정리 (0) | 2023.06.08 |
---|---|
torch.utils.data.DataLoader와 torch.utils.data.Dataset (0) | 2023.04.23 |
Diffusion model (1) (0) | 2023.04.18 |
tensor 이미지 저장하는 법 (0) | 2023.04.10 |
EasyDict 이란? 사용법 (0) | 2023.03.29 |