PyTorch: 모듈 구조 및 구성 요소
PyTorch는 Python을 위한 오픈소스 머신 러닝 라이브러리이다. Torch를 기반으로 하며, 자연어 처리와 같은 애플리케이션을 위해 사용된다. GPU사용이 가능하기 때문에 속도가 상당히 빠르다.
페이스북이 초기 루아(Lua) 언어로 개발된 토치(Torch)를 파이썬 버전으로 개발하여 2017년도에 공개하였다. 초기에 토치(Torch)는 넘파이(NumPy) 라이브러리처럼 과학 연산을 위한 라이브러리로 공개되었다. 이후 GPU를 이용한 텐서 조작 및 동적 신경망 구축이 가능하도록 딥러닝 프레임워크로 발전시켰다.
torch
메인 네임스페이스로 텐서 등의 다양한 수학 함수가 포함되어 있음
NumPy와 유사한 구조를 가짐
torch.autograd
자동 미분 기능을 제공하는 라이브러리임
torch.nn
신경망 구축을 위한 데이터 구조나 레이어를 정의함
예를 들어 RNN, LSTM과 같은 레이어, ReLU와 같은 활성화 함수, MSELoss와 같은 손실 함수들이 있음
torch.multiprocessing
병렬처리 기능을 제공하는 라이브러리임
torch.optim
SGD(Stochastic Gradient Descent)를 중심으로 한 파라미터 최적화 알고리즘을 제공함
torch.utils
데이터 조작 등 유틸리티 기능 제공함
torch.onnx
ONNX(Open Neural Network Exchange)의 포맷으로 모델을 익스포트할 때 사용함
ONNX는 서로 다른 딥 러닝 프레임워크 간에 모델을 공유할 때 사용하는 포맷임