Code

Tensor

ynnnxxi 2025. 9. 16. 13:50

Tensor : 수학적 객체. 딥러닝/머신러닝에서 data를 담는 기본 자료구조

- Multidimensional Array

 

Numpy array (넘파이 배열)과 비슷하지만,

GPU(CUDA)를 통해서 병렬 연산이 가능 !! (딥러닝 학습 속도가 빨라짐)

PyTorch와 Tensorflow와 같은 Deeplearning framework의 핵심 data 구조

 

* Deeplearning model은 모든 input(data), weight, output 을 Tensor로 표현하고 연산


<Dimension에 따른 Tensor>

  • 0차원 Tensor : Scalar
    • 하나의 숫자
x = torch.tensor(7)	# shape: ()

 

  • 1차원 Tensor : Vector
    • 숫자가 나열된 형태
x = torch.tensor([1, 2, 3])	# shape: (3, )

 

  • 2차원 Tensor : Matrix
    • 행(가로)과 열(세로)이 있는 표 형태
x = torch.tensor([1, 2, 3],
		[4, 5, 6])	# shape: (2, 3)

 

  • 3차원 Tensor : 여러 개의 행렬을 쌓은 형태 (ex. [C, H, W])
    • ex. color image = [채널, 높이, 너비]
x = torch.tensor(3, 224, 224)	# shape: (3, 224, 224)

 

  • 4차원 Tensor 이상 ..
    • Deep Learning에서 자주 사용
    • ex. video, batch
    • ex. (배치 크기 16, 채널 3, 224, 224) image (224x224)
x = torch.tensor(16, 3, 224, 224)	# shape: (16, 3, 224, 224)

<Tensor 만들기>

  • torch.tensor( )
    • 이미 list나 numpy array 같은 값이 있을 때, 직접 tensor로 바꿈
import torch

data = [1, 2, 3]
t = torch.tensor(data)
print(t)	# tensor([1, 2, 3])
  • torch.zeros( ), torch.ones( )
    • 모두 0 or 1로 채워진 tensor 만들기
torch.zeros(2, 3)  # 2x3 Tensor, 모두 0 -> tensor([0, 0], [0, 0], [0, 0])
torch.ones(4)      # 길이 4, 모두 1 -> tensor([1, 1, 1, 1])
  • torch.arange( ), torch.linspace( )
    • 규칙적인 숫자 나열
torch.arange(0, 10, 2)   # [0, 2, 4, 6, 8] -> 0 ~ 10까지 2간격으로
torch.linspace(0, 1, 5)  # [0, 0.25, 0.5, 0.75, 1] -> 0 ~ 1사이를 5개로 나눔
  • Random Tensor
    • torch.rand( ) : 0 ~ 1 사이 균등 분포
    • torch.randn( ) : 평균 0, 표준편차 1 정규분포
    • torch.randint( ) : 정수 랜덤 값
torch.rand(2, 2)       	# 균등분포 난수
torch.randn(2, 2)      	# 정규분포 난수
torch.randint(0, 10, (2, 3))  # 0~9 정수 난수

'Code' 카테고리의 다른 글

unsqueeze( ) - 차원(dimension) 공부하기  (0) 2025.09.16