라이브 러리 imort 하기
import torch
다양한 방법을 통한 tensor(=matrix)를 생성하기
[방법 1]
x = torch.empty(5, 3)
print(x)
>>>
tensor([[1.0358e-22, 4.5701e-41, 1.0358e-22],
[4.5701e-41, 7.3867e+20, 2.0027e-19],
[1.7258e+25, 7.2065e+31, 2.7490e+20],
[9.1041e-12, 2.8884e+12, 7.5338e+28],
[2.7518e+12, 7.5338e+28, 1.1703e-19]])
1. torch.empty()는 5x3 matrix를 구성하면서 초기화되지 않은 데이터로 값을 채움을 의미합니다.
2. x를 출력합니다.
[방법 2]
x = torch.rand(5, 3)
print(x)
>>>
tensor([[0.7122, 0.3001, 0.9889],
[0.3858, 0.0090, 0.7795],
[0.2086, 0.0729, 0.3983],
[0.1674, 0.7125, 0.7348],
[0.6357, 0.9817, 0.9985]])
1. torch.rand()함수를 사용하여 5x3 matrix를 구성하면서 [0, 1]사이의 임의의 값으로 초기화하였습니다.
2. 값을 출력합니다.
[방법 3]
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]])
1. torch.zeros()함수를 사용해서 5x3의 matrix를 구성하되, data type은 torch.long 타입으로 구성합니다.
2. 값을 출력합니다.
[방법 4]
x = torch.tensor([5.5, 3])
print(x)
>>>
tensor([5.5000, 3.0000])
1. torch.tensor() 함수를 사용하여 값을 지정하였습니다.
2. 값을 출력합니다.
[방법5]
x = x.new_ones(5, 3, dtype=torch.double)
print(x)
x = torch.randn_like(x, dtype=torch.float)
print(x)
>>>
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], dtype=torch.float64)
tensor([[ 1.9523, -0.7817, 0.2277],
[ 0.6803, -1.6325, -0.4256],
[-1.9521, 1.0685, 0.3095],
[-1.0649, 2.2523, 0.5226],
[-0.9373, 1.5968, -1.0513]])
1. new_ones()를 통해 5x3의 값이 1로 채워진 tensor를 torch.double 타입으로 생성합니다.
2. 값을 출력합니다.
4. torch.randn_like()함수를 통해 x와 같은 크기인 5x3의 tensor를 구성하되, data type은 torch.float으로 합니다.
5. 값을 출력합니다.
다양한 tensor 연산 방법
[방법 1]
y = torch.rand(5, 3)
print(x + y)
>>>
tensor([[ 0.1179, 1.6442, -0.8931],
[ 1.9675, -1.2483, 0.5085],
[ 1.1083, -0.8447, 1.1949],
[ 0.3140, 1.2145, 1.4549],
[ 0.2070, -0.0137, 0.7917]])
1. torch.rand()함수를 사용하여 5x3의 tensor를 구성하고
2. x + y를 더하여 출력합니다.
[방법 2]
y = torch.rand(5, 3)
print(torch.add(x, y))
>>>
tensor([[ 0.2695, -0.0394, 1.5583],
[-0.2415, -0.1067, 1.4684],
[ 2.5492, -0.3956, 1.0869],
[ 1.4204, -0.0634, 0.3292],
[-2.3074, 2.0999, 0.4016]])
1. torch.add() 함수를 사용하여 tensor x와 y를 더하여 출력합니다.
[방법 3]
result = torch.empty(5, 3)
torch.add(x, y, out=result)
print(result)
>>>
tensor([[ 1.9251, 1.4743, 1.0239],
[ 1.6558, 2.7618, -0.3048],
[ 0.1265, -0.6703, 0.5033],
[ 1.9132, 1.6690, 0.3547],
[ 1.6495, -0.6572, 1.2187]])
1. torch.empty()를 사용하여 5x3의 초기화되지 않은 값이 채워진 tensor를 생성합니다.
2. torch.add()함수를 사용하여 x, y를 더하되 매개변수 out에 result를 넘겨주어 출력값을 result에 넣습니다.
3. 값을 출력합니다.
[방법 4]
y.add_(x)
print(y)
>>>
tensor([[-0.3407, -0.4702, 1.2062],
[-0.5591, 1.8938, 2.1200],
[ 0.6164, 0.3205, -1.1166],
[ 2.0275, 1.6151, -0.6223],
[ 2.0269, 1.4084, 0.5584]])
1. tensor의 멤버함수인 add_()을 사용하여 y에 x를 더하여 y에 저장합니다.
2. 값을 출력합니다
'Pytorch' 카테고리의 다른 글
[Pytorch] Custom dataset & dataloader 만들기 (0) | 2021.06.21 |
---|---|
[Pytorch] Numpy에서 Tensor로 (0) | 2021.06.21 |
[Pytorch] CNN을 이용한 MNIST (0) | 2021.06.07 |
[Pytorch] DNN을 이용한 MNIST (0) | 2021.06.07 |
[Pytorch] 튜토리얼(1) (0) | 2021.05.17 |
댓글