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 |
|---|