Tensor란?
- Tensor = 수치 데이터를 담는 다차원 배열
- NumPy의 ndarray와 유사하나, GPU 연산 가속화 등 딥러닝에 특화된 기능을 제공
- 딥러닝 모델에서 입력/출력 데이터, 모델의 파라미터를 표현하는 데 사용
- PyTorch의 핵심 데이터 구조
Tensor의 차원
Tensor의 차원은 Tensor의 형태를 결정하며, 차원에 따라 표현하는 데이터의 의미가 달라짐.
0-D Tensor (=스칼라)
3.14
- 단일 값을 가지는 Tensor
- 활용 예: 모델의 예측 결과, 손실 값 등 단일 값을 나타낼 때
1-D Tensor (=벡터)
[1, 2, 3]
- 여러 개의 숫자를 순서대로 나열한 Tensor
- 활용 예: 텍스트 데이터의 각 단어를 정수로 변환하여 나타낼 때
2-D Tensor (=행렬)
[[1, 2],
[3, 4]]
- 여러 개의 행과 열로 이루어진 Tensor
- 활용 예: 이미지 데이터, 텍스트 데이터의 단어 임베딩 등 2차원 형태의 데이터를 나타낼 때
3-D Tensor
[[[255, 0, 0],
[0, 255, 0]],
[[0, 0, 255],
[255, 255, 0]]]
- 2차원 Tensor를 여러 개 쌓아올린 형태의 Tensor
- 활용 예: 컬러 이미지, 동영상 데이터, 3차원 좌표 데이터 등 3차원 형태의 데이터를 나타낼 때
N-D Tensor
- 4차원 이상의 Tensor
- 활용 예: 자연어 처리에서 문장의 의미를 나타내는 Tensor, 시계열 데이터 등 고차원 데이터를 나타낼 때
예제
import torch
scalar = torch.tensor(3.14)
vector = torch.tensor([1, 2, 3])
matrix = torch.tensor([[1, 2], [3, 4]])
tensor_3d = torch.tensor([[[255, 0, 0], [0, 255, 0]], [[0, 0, 255], [255, 255, 0]]])
Tensor의 shape
- 1-D: (열,)
- 2-D: (행, 열)
- 3-D: (깊이, 행, 열)
-> 차원이 증가함에 따라 뒤로 한 칸씩 밀린다고 기억하면 편함.
Outro
더 읽어볼 것
참고 자료