PyTorch

  • PyTorch는 간편한 딥러닝 API를 제공하며, 머신러닝 알고리즘을 구현하고 실행하기 위한 확장성이 뛰어난 멀티플랫폼 프로그래밍 인터페이스(Raschka, Liu & Mirjalili, 2022)

  • PyTorch는 Windows, macOS, Linux 등 다양한 환경에서 사용 가능하며 Python, C++, Java 언어를 지원

  • API의 간편성과 Pythonic 특징 때문에 사용성이 좋다

  • PyTorch GitHub, PyTorch Tutorials 등 활발한 커뮤니티와 생태계가 구축되어 있음

  • 연산 속도와 효율성이 뛰어나며 GPU를 지원함

  • API란?

    API(Application Programming Interface)란 응용 프로그램이 서로 상호작용하는데 사용하는
    명령어, 함수, 프로토콜의 집합을 의미함



Tensor

  • Tensor는 PyTorch의 핵심 데이터 구조로서, NumPy의 다차원 배열과 유사한 형태로
    데이터를 표현함
# 0-D Tensor(=Scalar)
# 하나의 숫자로 표현되는 양
a = torch.tensor(36.5)

# 1-D Tensor(=Vector)
# 순서가 지정된 여러 개의 숫자들이 일렬로 나열된 구조
b = torch.tensor([175, 60, 81, 0.8, 0.9])

# 2-D Tensor(=Matrix)
# 동일한 크기를 가진 1D Tensor들이 모여서 형성한, 행과 열로 구성된 사각형 구조
# (예시) 그레이 스케일 이미지 : 각 픽셀이 빛의 양을 의미하는 하나의 값을 가짐
c = torch.tensor([[77, 114, 140, 191],
                                        [39, 56,46, 119],
                                        [61, 29, 20, 33]])

# 3-D Tensor
# 동일한 크기의 2-D Tensor들이 여러 개 쌓여 형성된 입체적인 배열 구조
# (예시) 컬러 이미지 : 각 픽셀마다 R/G/B와 대응되는 3개의 요소 값 가짐
# 컬러 이미지는 투명도를 의미하는 A(알파) 채널을 추가할 수도 있음
d = torch.tensor([[[255, 0, 0], 
                                    [0, 255, 0]],
                                        [[0, 0, 255],
                                        [255, 255, 0]]])



PyTorch 데이터 타입

데이터 타입(dtype) 유형 비트 범위 비고
torch.uint8 정수형 8 0~255 정수 부호 없음
torch.int8 정수형 8 -128 ~ 127 정수 부호 있음
torch.int16 또는 torch.short 정수형 16 -32,768 ~ 32,7677 정수
torch.int32 또는 torch.int 정수형 32 -2,147,483,648 ~ 2,147,483,647 정수 표준적인 정수 크기로 사용
torch.int64 또는 torch.long 정수형 64 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 정수
torch.float32 또torch.float 실수형 32 부호 (1비트) / 지수부 (8비트) / 가수부 (23비트) 32비트 부동 소수점 수
torch.float64 또는 torch.double 실수형 64 부호 (1비트) / 지수부 (11비트) / 가수부 (52비트) 64비트 부동 소수점 수



타입 캐스팅

PyTorch에서 타입 캐스팅은 한 데이터 타입을 다른 데이터 타입으로 변환하는 것

(예시) j = i.float() k = i.double()



Tensor 기초 함수 및 메서드

mIn() Tensor의 모든 요소들 중 최소값을 반환하는 함수
max() Tensor의 모든 요소들 중 최대값을 반환하는 함수
sum() Tensor의 모든 요소들의 합을 계산하는 함수
prod() Tensor의 모든 요소들의 곱을 계산하는 함수
mean() Tensor의 모든 요소들의 평균을 계산하는 함수
var() Tensor의 모든 요소들의 표본분산을 계산하는 함수
std() Tensor의 모든 요소들의 표본표준편차를 계산하는 함수
t.dim() Tensor t의 차원의 수를 확인하는 메서드
t.size() 또는 t.shape() Tensor t의 크기(모양)을 확인하는 메서드 (또는 속성)
t.numel() Tensor t에 있는 요소의 총 개수를 확인하는 메서드



표본분산

표본 : 과학적인 방법으로 모집단에서 추출한 일부 데이터의 집합

모집단 : 연구 또는 조사에서 관심의 대상이 되는 전체 집단을 의미

표본분산

  • 주어진 표본 데이터 집합의 분포 정도를 나타내는 통계량으로, 데이터가 평균값을 중심으로 얼마나 퍼져 있는지를 제곱한 값의 평균으로 계산함
  • 단, 전체 표본의 개수에서 1을 뺐을 때 더 정확한 분산이 도출되므로 수식 표현에서와 같이 1을 뺀
    (n-1)로 계산하며, 이를 자유도라고 함

$$
S^2=\frac{1}{(n-1)}\sum_{i=1}^{n}(x_{i}-\overline{x})^2 (\overline{x}:평균)
$$

표본표준편차 : 표본분산값에 루트를 해서 구할 수 있음

'Study - AI > Torch & Tensor' 카테고리의 다른 글

이진 분류 알고리즘 & 배치(Batch)  (0) 2025.01.03
Tensor 연산 방식  (0) 2025.01.03
Tensor 생성 및 변환  (0) 2025.01.02