Stats & AI tech blog - '일단 시도함'

[Python] PyTorch 개요 및 아키텍처 본문

Programming/Python

[Python] PyTorch 개요 및 아키텍처

justdoit ok? 2024. 4. 4. 11:26

1. 파이토치 개요

 

파이토치(PyTorch)는 2017년 초에 공개된 딥러닝 프레임워크이다.
초기에는 파이썬 넘파이(Numpy) 같은 과학 연산용 라이브러리로 공개되었지만, 점점 딥러닝 프레임워크로 발전하게 된 케이스다. 파이토치(PyTorch)는 간결하고 쉬운 구현성GPU를 사용한 빠른 연산 처리로 유명해졌고, 아래와 같은 주요 특징을 가지고 있다.
 

  • GPU(Graphics Processing Unit) 
    딥러닝에서 기울기를 계산할 때 CPU 대신 GPU를 사용하면 훨씬 빠른 속도로 미분 연산을 처리할 수 있다.
    CUDA, cuDNN이라는 API를 통해서 GPU에서 사용하는 병렬 처리 알고리즘을 연산에 사용한다.

  • 텐서(Tensor)
    텐서(Tensor)는 파이토치의 데이터 형태로 매우 중요한 핵심 개념이다.
    단일 데이터 형식으로 된 자료들의 다차원 행렬이다.

  • 동적 신경망
    훈련을 반복할 때마다 구조(Network)를 변경할 수 있는 신경망이다.
    파이토치에서는 은닉층(hidden layer)의 개수를 추가하거나 제거하는 등 신경망의 구조 변경이 가능하다.

 

2. 파이토치 아키텍처

파이토치(PyTorch)의 아키텍처는 크게 3계층으로 나눌 수 있는데,
위에서부터 파이토치 API - 파이토치 엔진 - 연산 처리 순으로 이루어져 있다.

https://resultofeffort.tistory.com/77

 
2.1 파이토치 API

파이토치 API 계층에서는 사용자 인터페이스를 제공한다.
이해하기 쉬운 API를 제공해서 사용자가 간결하게 신경망을 구축하고 훈련할 수 있게 도와주는 역할을 한다.
이 계층에서는 계산을 수행하지 않고, 다음 계층인 파이토치 엔진으로 작업을 전달하는 역할을 한다.
 
제공 패키지

  • torch : GPU를 지원하는 tensor 패키지
  • torch.autograd : 자동 미분 패키지
  • torch.nn : 신경망 구축 및 훈련 패키지
  • torch.multiprocessing : 파이썬 멀티프로세싱 패키지
  • torch.utils : DataLoader 및 기타 유틸리티 제공 패키지

 
 

2.2 파이토치 엔진

파이토치 엔진은 C++로 작성된 라이브러리 Python API로 구성되어 있다.
이 계층에서는 자동 미분 계산을 수행하고 텐서계산 최적화를 위한 라이브러리, 컴파일러를 제공한다.

  • Autograd C++ : 자동 미분 수행
  • Aten C++ : 텐서 라이브러리 제공
  • JIT C++ : 계산 최적화를 위한 컴파일러
  • Python API : C++을 Python API 형태로 제공

 
 

2.3 연산 처리 

가장 아래인 연산 처리 계층에서는 C 또는 CUDA 패키지를 활용해서 상위 계층에서 할당된 거의 모든 계산을 수행한다.
CPU와 GPU(TH, THC)를 활용해서 빠르고 효율적으로 다차원 텐서에 대한 연산을 처리하는 계층이다.
 
 
여기까지 딥러닝 프레임워크인 파이토치(PyTorch)의 개념과 아키텍처에 대해 알아보았다.
다음 포스팅에서는 파이토치(PyTorch)에서 신경망 모델을 정의하는 방법에 대해 알아보도록 하겠다.

 

2024.04.05 - [Programming/Python] - [Python] PyTorch에서 신경망 모델 정의

 

[Python] PyTorch에서 신경망 모델 정의

PyTorch에서 신경망 모델 정의 오늘은 파이토치(PyTorch)에서 모델을 정의하는 방법에 대해 알아볼거에요. 모델 정의에 필요한 개념인 계층(Layer), 모듈(Module), 모델(Model)에 대해 먼저 알아볼게요. 계

meowstudylog.tistory.com

 


 
 
* Reference
 - 딥러닝 파이토치 교과서
 - https://resultofeffort.tistory.com/77