안녕하세요.
오늘은 Python 대표 딥러닝 프레임 워크인 Pytorch 함수 특징에 대해 알아보려고 합니다.
Pytorch를 한번이라도 사용해 보셨다면 torch.tensor와 torch.Tensor 중 하나는 사용해 보셨을 텐데요.
tensor와 Tensor 함수는 array나 list 형태인 데이터를 tensor화 하여 Pytorch에서 데이터를 처리하거나 학습할 때 호환이 될 수 있도록 도와주는 Pytorch 내장함수입니다.
Pytorch를 사용하여 학습을 진행하고자 할때 tensor 또는 Tensor 함수를 사용하여 데이터를 변환해 준 뒤 연산처리를 하게 되는데요. 얼핏 보면 같은 기능을 하는 함수인데 왜 2개씩이나 만들어놨는지 한 번쯤 궁금하셨을 겁니다.
결론부터 말하자면 torch.Tensor보다는 세부조정이 가능한 torch.tensor를 사용하길 추천드립니다.
본격적으로 각 함수의 차이점을 비교하기 위해 torch.Tensor와 torch.tensor를 사용하여 tensor를 만들고 출력하여 어떤 결과가 나오는지 확인해 보도록 하겠습니다.
① torch.tensor
import torch
x = torch.tensor([1,2,3,3])
print(x)
[실행결과]
② torch.Tensor
import torch
x = torch.Tensor([1,2,3,3])
print(x)
[실행결과]
차이점을 발견하셨나요? 네 맞습니다. 함수명 대소문자 외에도 출력결과에서도 차이가 납니다.
tensor 함수의 경우 float 데이터를 넣으면 float으로 출력, int 데이터를 넣으면 int로 출력됩니다. 반면 Tensor함수는 float이나 int 데이터를 넣으면 float으로 출력됩니다.
딥러닝 연산처리를 할 때는 보통 실수형태로 변환하여 처리하기 때문에 자동으로 실수형태로 변환해 주는 Tensor 함수가 더 좋아 보일 수 있습니다. 그러나 상황에 따라 정수 연산이 필요한 경우도 있기 때문에 정수 데이터 연산 시 tensor 함수를 다시 찾아야 하는 번거로움이 발생할 수 있습니다.
따라서 Tensor함수보다는 tensor를 익혀두고 사용하는 것을 추천드립니다.
# tensor 함수를 사용하여 정수 출력
import torch
# 방법 1
x = torch.tensor([1,2,3,3])
# 방법2
x = torch.tensor([1,2,3,3], dtype=torch.int32)
print(x)
[출력결과]
# tensor 함수를 사용하여 실수 출력
import torch
# 방법 1
x = torch.tensor([1.,2.,3.,3.])
# 방법2
x = torch.tensor([1,2,3,3], dtype=torch.float32)
print(x)
[출력결과]
tensor 함수를 사용하여 실수와 정수 출력을 해보았습니다. 입력받는 데이터 형태나 dtype 설정을 통해 실수나 정수로 출력이 되는 것을 확인할 수 있습니다. tensor 함수를 사용하면 Tensor 함수와 같이 무조건 실수형태로 변환해주는 것보다 더 세부적인 설정이 가능합니다.
그 외에도 Tensor는 클래스, tensor는 함수라는 차이점도 있지만 눈에 띄는 차이점이 아니기 때문에 생략하도록 하겠습니다.
이상 오늘의 블로그를 마치겠습니다.
감사합니다.
https://scikitlearn.tistory.com/128
https://scikitlearn.tistory.com/130
'데이터분석(Data analysis)' 카테고리의 다른 글
데이터 분석가가 알려주는 Pytorch Gradient 계산의 이해 (0) | 2023.10.22 |
---|---|
어떤 그래프가 좋을까? - 데이터분석 (1) | 2020.05.02 |
머신러닝 기초, 지도학습(Supervised Learning)과 비지도학습(Unsupervised Learning), 강화학습(Reinforcement Learning)에 대해 알아보자! (0) | 2020.03.04 |
AI? 머신러닝? - 인공지능에 대해 알아보자! (0) | 2020.03.03 |