머신러닝 & 딥러닝/자연어처리

파이토치 기초 텐서(Tensor) 다루기 - torch.Tensor(), rand(), randn(), zeros(), ones(), fill_(), from_numpy()

by seokii 2021. 11. 27.
728x90
반응형

파이토치를 활용한 자연어 처리를 기본서부터 공부하고 있습니다

기본서에서 파이토치를 사용해 텐서를 만드는 기초부분을 공부했습니다.

 

 

주피터 노트북으로 실습

In [1] : 

import torch

def describe(x):
    print("타입: {}".format(x.type()))
    print("크기: {}".format(x.shape))
    print("값: \n{}".format(x))

- 파이토치를 불러오고, 텐서를 생성했을 때 확인하기 위한 간단한 함수입니다.

 

 

In [2] : 

describe(torch.Tensor(2,3))

- torch.Tensor()를 사용해 차원을 지정하여 텐서를 랜덤하게 초기화 할 수 있습니다.

 

 

In [3] : 

describe(torch.rand(2,3))
describe(torch.randn(2,3))

- torch.rand()와 torch.randn()을 사용해 위와 같이 균등 분포, 표준 정규 분포 텐서를 만들 수 있습니다.

 

 

In [4] : 

describe(torch.zeros(2,3))

In [5] : 

x = torch.ones(2,3)
describe(x)

- torch.zeros(), torch.ones()를 사용해 각각 0과 1의 값으로 채워진 텐서를 만들 수도 있습니다.

 

 

In [6] : 

x.fill_(5)
describe(x)

- .fill_() 함수를 사용해 원하는 값으로 채워 줄 수 있습니다.

 

 

In [7] : 

x = torch.Tensor([[1,2,3],
                 [4,5,6]])
describe(x)

- 파이썬 리스트 형식으로도 텐서를 만들 수 있습니다.

 

 

In [8] : 

import numpy as np

np = np.random.rand(2,3)
describe(torch.from_numpy(np))

- numpy 라이브러리를 불러와 np.random.rand() 함수를 사용해 넘파이 배열을 만들었습니다.

- 이후, torch.from_numpy() 함수를 사용해 넘파이 배열을 텐서로 만들었습니다.

- 결과를 보면 텐서 타입이 기본 FloatTensor가 아니라 DoubleTensor가 된 것을 확인할 수 있습니다.

 

 

728x90
반응형

댓글