반응형
파이토치 view 텐서 차원 변경 (torch.view, shape 변경)¶
- 텐서의
shape
를 변경하는 함수입니다.
In [1]:
# - (2, 2, 5) 사이즈의 텐서를 (20) 사이즈로 변경하기 위한 예시데이터 구성입니다.
import torch
# batch, seq_lenth, feature
data = torch.tensor([
[
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6]
],
[
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8]
]
])
data
Out[1]:
tensor([[[1, 2, 3, 4, 5], [2, 3, 4, 5, 6]], [[3, 4, 5, 6, 7], [4, 5, 6, 7, 8]]])
In [2]:
data.shape
Out[2]:
torch.Size([2, 2, 5])
- 예시 데이터 객체에 view 함수를 이용하여 shape를 20으로 변경 합니다.
In [3]:
data.view(2*2*5)
Out[3]:
tensor([1, 2, 3, 4, 5, 2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8])
In [4]:
data.view(2*2*5)
Out[4]:
tensor([1, 2, 3, 4, 5, 2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8])
- 예시 데이터 객체에 view 함수를 이용하여 shape를 (2, 10)으로 변경 합니다.
In [5]:
data.view(2, 2*5)
Out[5]:
tensor([[1, 2, 3, 4, 5, 2, 3, 4, 5, 6], [3, 4, 5, 6, 7, 4, 5, 6, 7, 8]])
In [6]:
data.view(2, 2*5).shape
Out[6]:
torch.Size([2, 10])
- 중간에
-1
을 넣으면 해당 위치에 새로운 차원이 하나 더 생성됩니다
In [7]:
# (2, 2, 1, 5)
data.view(2, 2, -1, 5)
Out[7]:
tensor([[[[1, 2, 3, 4, 5]], [[2, 3, 4, 5, 6]]], [[[3, 4, 5, 6, 7]], [[4, 5, 6, 7, 8]]]])
In [8]:
data.view(2, 2, -1, 5).shape
Out[8]:
torch.Size([2, 2, 1, 5])
반응형
'python' 카테고리의 다른 글
파이토치로 이미지 패딩하기 torchvision padding (0) | 2022.12.19 |
---|---|
sklearn train_test_split, 트레인 테스트 데이터 분할 (0) | 2022.12.18 |
판다스를 활용한 one-hot, 더미 컬럼 만들기 (pandas.get_dummies one-hot encoding) (0) | 2022.12.18 |
파이썬 복사, 깊은 복사 copy() deepcopy() (0) | 2022.12.17 |
파이썬 한국 휴일(holidays) 표시하기 (pytimekr) (2) | 2022.12.17 |
댓글