본문 바로가기
Pytorch

[Pytorch] 튜토리얼(2)

by xangmin 2021. 5. 17.
반응형

라이브 러리 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. 값을 출력합니다

 

 

 

 

 

 

 


출처 : https://sylaboratory.tistory.com/20

반응형

'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

댓글