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

파이토치 기초 텐서(Tensor) 타입 - float, long, double

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

지난 글에 이어서 텐서의 타입에 대해서 알아보겠습니다.

텐서 타입과 크기

텐서에는 타입과 크기가 있습니다. torch.Tensor()의 기본 텐서 타입은 torch.FloatTensor입니다.

텐서 타입은 초기화할 때 지정하거나 나중에 다른 타입(float, long, double 등)으로 바꿀 수 있습니다.

 

처음 초기화 할 때의 타입 지정엔 두 가지 방법이 있습니다.

1. FloatTensor, LongTensor 같은 특정 텐서 타입의 생성자를 직접 호출한다.

2. torch.tensor()와 함께 dtype 매개변수를 사용한다.

 

 

주피터 노트북으로 실습

In [1] : 

import torch

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

- 라이브러리를 불러오고, 정보를 확인하기 위한 간단한 함수를 설정합니다.

 

 

In [2] : 

x = torch.FloatTensor([[1,2],
                      [3,4]])
describe(x)

- torch.FloatTensor()함수를 사용해 텐서를 만들고 결과를 확인합니다.

- 이 방법은 위에서 언급한 1번 방법입니다.

 

 

In [3] : 

x = x.long()
describe(x)

- 타입 캐스팅 메서드를 사용해 텐서의 타입을 바꾸는 방법입니다.

- .long() 함수를 사용해 텐서의 타입이 LongTensor로 바뀐 결과를 확인할 수 있습니다.

 

 

In [4] : 

x = x.double()
describe(x)

- 바로 위의 내용과 동일합니다.

- long(), double(), float() 등이 있습니다.

 

 

In [5] : 

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

- 위에서 언급한 두 번째 방법입니다. torch.tensor() 함수로 텐서를 생성하면서 dtype 매개변수를 사용해 텐서의 타입을 지정하는 방법입니다.

 

 

In [6] : 

x = x.float()
describe(x)

- 이 방법도 1번과 동일하게 타입 캐스팅 메서드를 사용할 수 있습니다.

 

 

728x90
반응형

댓글