파이토치 텐서의 차원, 크기 다루기
정의
를 파이토치 텐서라고 하자.
다음과 같은 순서쌍 을 의 사이즈라고 한다.
을 의 크기라고 하자.
를 차원 텐서라고 한다.
는 각각 번째 차원의 크기이며 보다 큰 정수이다. 파이썬이므로 번째 차원부터 시작한다는 점을 주의하자.
>>> A = torch.ones(2,3,4)
tensor([[[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]],
[[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]]])
가령 위와 같은 텐서 의 차원은 , 크기는 , 사이즈는 이다.
.dim()
, .ndim
텐서의 차원을 반환한다.
>>> A.dim()
3
>>> A.ndim
3
.shape
, .size()
텐서의 사이즈를 반환한다.
>>> A.shape
torch.Size([2, 3, 4])
>>> A.shape[1]
3
>>> A.size()
torch.Size([2, 3, 4])
>>> A.size(2)
4
.view()
, .reshape()
텐서의 크기를 유지한 채 사이즈를 바꾼다.
변수로 을 쓰면 자동으로 크기가 맞춰진다. 가령 다음의 예와 같이 사이즈의 텐서를 .view(4,-1)
과 같이 변경하면 사이즈로 바뀐다.
>>> A.reshape(8,3)
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
>>> A.view(3,-1)
tensor([[1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1.]])
>>> A.view(-1,4)
tensor([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])