[PyTorch] Tensor의 개념과 차원

beaver.zip·2024년 8월 8일
0

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

# 0-D 텐서 생성
scalar = torch.tensor(3.14)

# 1-D 텐서 생성
vector = torch.tensor([1, 2, 3])

# 2-D 텐서 생성
matrix = torch.tensor([[1, 2], [3, 4]])

# 3-D 텐서 생성
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

더 읽어볼 것

참고 자료

profile
NLP 일짱이 되겠다.

0개의 댓글