Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

PyTorch에서 텐서 메타데이터(크기·형태·요소 개수)에 접근하는 방법


개요

텐서(tensor)의 메타데이터란 텐서의 크기(size), 즉 형태(shape)와 텐서에 담긴 전체 요소(element) 개수를 의미합니다. 텐서의 크기는 .size() 메서드로, 형태는 .shape 속성으로 확인할 수 있습니다.

.size().shape은 사용 방식만 다를 뿐 동일한 결과를 반환합니다. 한편 텐서에 포함된 총 요소 개수는 torch.numel() 함수를 사용해 구할 수 있습니다.

구현 단계

  • 필요한 라이브러리를 임포트합니다. 이 글에서는 torch 라이브러리가 필요하므로 사전에 설치되어 있는지 확인하세요.

  • 메타데이터를 확인할 PyTorch 텐서를 정의합니다.

  • 텐서의 메타데이터를 조회합니다. .size().shape으로 크기와 형태를 얻고, torch.numel()로 요소 개수를 계산합니다.

  • 독자의 이해를 돕기 위해 텐서 자체와 메타데이터를 함께 출력합니다.

예제 1: 4×3 크기의 2차원 텐서

# 텐서의 메타데이터에 접근하는 파이썬 프로그램
# 필요한 라이브러리 임포트
import torch

# 4x3 크기의 텐서 생성
T = torch.Tensor([[1,2,3],[2,1,3],[2,3,5],[5,6,4]])
print("T:\n", T)

# 위 텐서 "T"의 크기 확인
size_T = T.size()
print("size of tensor T:\n", size_T)

# .shape 속성을 사용하는 또 다른 방법
print("Shape of tensor:\n", T.shape)

# 텐서 "T"의 요소 개수 확인
num_T = torch.numel(T)
print("Number of elements in tensor T:\n", num_T)

출력 결과

위 파이썬 3 코드를 실행하면 다음과 같은 결과가 출력됩니다.

T:
tensor([[1., 2., 3.],
         [2., 1., 3.],
         [2., 3., 5.],
         [5., 6., 4.]])
size of tensor T:
torch.Size([4, 3])
Shape of tensor:
torch.Size([4, 3])
Number of elements in tensor T:
12

예제 2: 4×3×2 크기의 3차원 텐서

# 텐서의 메타데이터에 접근하는 파이썬 프로그램
# 필요한 라이브러리 임포트
import torch

# 난수로 이루어진 텐서 생성
T = torch.randn(4,3,2)
print("T:\n", T)

# 위 텐서 "T"의 크기 확인
size_T = T.size()
print("size of tensor T:\n", size_T)

# .shape 속성을 사용하는 또 다른 방법
print("Shape of tensor:\n", T.shape)

# 텐서 "T"의 요소 개수 확인
num_T = torch.numel(T)
print("Number of elements in tensor T:\n", num_T)

출력 결과

위 파이썬 3 코드를 실행하면 다음과 같은 결과가 출력됩니다.

T:
tensor([[[-1.1806, 0.5569],
         [ 2.2237, 0.9709],
         [ 0.4775, -0.2491]],
         [[-0.9703, 1.9916],
         [ 0.1998, -0.6501],
         [-0.7489, -1.3013]],
         [[ 1.3191, 2.0049],
         [-0.1195, 0.1860],
         [-0.6061, -1.2451]],
         [[-0.6044, 0.6153],
         [-2.2473, -0.1531],
         [ 0.5341, 1.3697]]])
size of tensor T:
torch.Size([4, 3, 2])
Shape of tensor:
torch.Size([4, 3, 2])
Number of elements in tensor T:
24

마무리

정리하면, PyTorch 텐서의 메타데이터를 확인하는 핵심 방법은 세 가지입니다. .size() 메서드와 .shape 속성은 모두 각 차원의 크기를 담은 torch.Size 객체를 반환하며, torch.numel() 함수는 각 차원 크기를 모두 곱한 전체 요소 개수를 반환합니다. 위 예제에서 확인했듯이 4×3 텐서는 요소가 12개, 4×3×2 텐서는 24개입니다.