1. 초기화되지 않은 행렬 선언
import torch
x = torch.empty(5, 3)
print(x)
- 초기화되지 않은 행렬이 선언되었지만, 사용하기 전에는 명확히 알려진 값을 포함하고 있지는 않는다.
- 위의 empty와 같이 초기화되지 않은 행렬이 생성되면 그 시점에 할당된 메모리에 존재하던 값들이 초기값.
출력 (shape : 5 x 3)
tensor([[8.4490e-39, 9.6429e-39, 9.2755e-39],
[1.0286e-38, 9.0919e-39, 8.9082e-39],
[9.2755e-39, 8.4490e-39, 1.0194e-38],
[9.0919e-39, 8.4490e-39, 9.6429e-39],
[1.0653e-38, 9.6429e-39, 1.0745e-38]])
2. 초기화된 행렬 생성
import torch
x = torch.rand(5, 3)
print(x)
- empty와 달리 torch.rand는 특정 조건에 의해 초기화된다.
아래 torch.rand 함수를 보면
pytorch.org/docs/stable/generated/torch.rand.html
즉, 연속균등분포를 따르는 0~1 사이의 숫자를 반환하는 것을 알 수 있다.
(연속균등분포는 연속 확률 분포로, 분포가 특정 범위 내에서 균등하게 나타나 있을 경우를 가르킨다 - 위키피디아)
결과
tensor([[0.7322, 0.8493, 0.8200],
[0.8501, 0.2248, 0.0999],
[0.7542, 0.7537, 0.5483],
[0.0982, 0.0477, 0.8583],
[0.4503, 0.9542, 0.4660]])
3. 0으로 채워진 행렬 생성(자료형이 long인 경우)
import torch
x = torch.zeros(5, 3, dtype=torch.long)
print(x)
결과
tensor([[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
4. 데이터로부터 tensor를 직접 생성
import torch
x = torch.tensor([5.5, 3])
print(x)
결과
tensor([5.5000, 3.0000])
5. 기존 tensor를 바탕으로 새로운 tensor 생성
import torch
# 1
x = torch.tensor([5.5, 3])
print(x)
# 2
x = x.new_ones(5, 3, dtype=torch.double) # shape : 5 x 3
print(x)
# 3
x = torch.randn_like(x, dtype=torch.float) # dtype을 오버라이드
print(x)
결과 확인
tensor([5.5000, 3.0000])
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], dtype=torch.float64)
tensor([[ 0.5951, 0.6310, 0.1281],
[ 0.7716, -0.5226, 0.1680],
[-0.8349, 1.2805, -0.3398],
[ 1.2791, -0.3563, 1.2629],
[-0.6927, 0.7865, -0.7172]])
위 1번을 보면 데이터로부터 tensor를 직접 생성한 것과 같고
2번의 경우, 아래 함수 정의에 따라, x에 정의된 값들을 지정해준 shape(5 x 3)에 맞춰 변환하고 값들을 전부 1로 바꿔줬다.
3번의 경우, 아래 함수 정의에 따라 input인 x와 같은 사이즈의 tensor를 반환하는데 그 tensor의 값들은 평균 0과 분산 1을 따르는 정규 분포(normal distribution)로부터 랜덤으로 추출된 값이다.
6. 행렬 사이즈 계산
import torch
x = torch.tensor([[3, 2, 1],
[1, 4, 8]])
print(x.size())
결과
torch.Size([2, 3])
'Language&Framework&Etc > Pytorch' 카테고리의 다른 글
Pytorch Multi-GPU 정리 중 (0) | 2021.12.19 |
---|---|
Pytorch 데이터 로딩 방법 (0) | 2021.06.07 |
AUTOGRAD : 자동 미분 (Pytorch tutorial) (0) | 2021.04.30 |
Pytorch란 무엇인가요? - 연산 (Pytorch 학습 2) (0) | 2021.04.16 |
TorchVision model funetuning (0) | 2021.01.30 |