이것저것 기록

[DL, PyTorch] 벡터, 행렬, 텐서 본문

Data Science/ML & DL

[DL, PyTorch] 벡터, 행렬, 텐서

anweh 2020. 10. 6. 21:18

 

1. 정의

- 스칼라: 차원이 없는 값

- 벡터: 1차원으로 구성된 값

- 행렬: 2차원으로 구성된 값 / 일반적으로 이용하는 데이터 형태 (batch size, dim)

- 텐서: 3차원으로 구성된 값 / Vision에서는 (batch size, length, dim)

 

 

 

 

 

 

 

2. Numpy 와 PyTorch 텐서 비교

  Numpy PyTorch
선언 np.array() torch.FloatTensor,
torch.Tensor()
차원 확인 .ndim .dim()
크기 확인 .shape .size()

 

 

 

3. 파이토치로 텐서 선언 

import torch

t1 = torch.Tensor(3) #원소가 3개인 단일 텐서 선언
t2 = torch.Tensor(3, 5) #3x5의 2차원 텐서 선언
rn1 = torch.rand(3,3) # rand를 통한 a는 0에서 1사이의 uniform distribution random 값으로 선언
rn2 = torch.randn(3,3) # randn을 통한 a는 평균이 0이고 분산이 1인 normal distribution random 값으로 선언

 

 

 

4. 랜덤 텐서 선언

  • torch.rand() : 0과 1 사이의 숫자를 균등하게 생성
  • torch.rand_like() : 사이즈를 튜플로 입력하지 않고 기존의 텐서로 정의
  • torch.randn() : 평균이 0이고 표준편차가 1인 가우시안 정규분포를 이용해 생성
  • torch.randn_like() :  사이즈를 튜플로 입력하지 않고 기존의 텐서로 정의
  • torch.randint() : 주어진 범위 내의 정수를 균등하게 생성, 자료형은 torch.float32
  • torch.randint_like() : 사이즈를 튜플로 입력하지 않고 기존의 텐서로 정의
  • torch.randperm() : 주어진 범위 내의 정수를 랜덤하게 생성

 

 

5. 특별한 값을 가지는 텐서 선언

  • torch.arange() : 주어진 범위 내의 정수를 순서대로 생성
  • torch.ones() : 주어진 사이즈의 1로 이루어진 텐서 생성
  • torch.zeros() : 주어진 사이즈의 0으로 이루어진 텐서 생성
  • torch.ones_like() : 사이즈를 튜플로 입력하지 않고 기존의 텐서로 정의
  • torch.zeros_like() : 사이즈를 튜플로 입력하지 않고 기존의 텐서로 정의
  • torch.linspace() : 시작점과 끝점을 주어진 갯수만큼 균등하게 나눈 간격점을 행벡터로 출력
  • torch.logspace() : 시작점과 끝점을 주어진 갯수만큼 로그간격으로 나눈 간격점을 행벡터로 출력
Comments