728x90
반응형
torch.stack() 과 torch.cat() 모두 행렬을 연결하는데 쓰인다.
하지만 둘의 다른점을 비교하지 않으면 가끔 혼란스러울 수 있다.
따라서 한번 정리하고 넘어가려 한다.
torch.cat()은 주어진 차원을 기준으로 주어진 텐서들을 연결(concatenate)한다.
torch.stack()은 새로운 차원으로 주어진 텐서들을 연결한다.
import torch
x = torch.FloatTensor([1,4])
y = torch.FloatTensor([2,5])
z = torch.FloatTensor([3,6])
print(x.shape) #torch.Size([2])
print(torch.stack([x,y,z]))
# tensor([[1., 4.],
# [2., 5.],
# [3., 6.]])
print(torch.stack([x,y,z]).shape) # torch.Size([3, 2])
print(torch.stack([x,y,z], dim=1))
# tensor([[1., 2., 3.],
# [4., 5., 6.]])
print(torch.stack([x,y,z], dim=1).shape) #torch.Size([2, 3])
print(torch.cat([x,y,z],dim=0)) # tensor([1., 4., 2., 5., 3., 6.])
print(torch.cat([x,y,z],dim=0).shape) # torch.Size([6])
print(torch.cat([x.unsqueeze(0), y.unsqueeze(0), z.unsqueeze(0)], dim=0))
# tensor([[1., 4.],
# [2., 5.],
# [3., 6.]])
print(torch.cat([x.unsqueeze(0), y.unsqueeze(0), z.unsqueeze(0)], dim=0).shape) # torch.Size([3, 2])
728x90
반응형
'AI-Tech 부스트캠프 > 파이토치' 카테고리의 다른 글
[PyTorch] (B,C,H,W) 이어 붙이기 tensor.randn((B,) + (C,H,W)) (0) | 2023.11.09 |
---|---|
torch.Tensor.item (0) | 2023.11.09 |
[PyTorch] masked_fill() 함수 사용 예시 (0) | 2023.01.02 |
[PyTorch] torch.transpose()와 numpy().transpose() 차이 (0) | 2023.01.01 |
[PyTorch] 모델 불러오기 (0) | 2022.12.24 |
댓글