Pytorch 라이브러리 개요

파이토치는 딥러닝 프로젝트를 빌드(build)하는 데 도움을 주는 파이썬 프로그램용 라이브러리/프레임워크 이다.

 

파이토치는 대부분 C++과 CUDA 언어를 기반으로 만들어졌다.

 

파이토치는 수학적 연산을 가속화 하고자 코어 데이터 구조인 텐서(Tensor)를 제공한다. 이는 NumPy 배열(array)과 비슷한 다차원 배열이고, CPU 또는 GPU에서 연산이 가능하다.

 

파이토치에서 모든 연산은 텐서에서 기초적으로 제공되고, torch.autograd에서 정제된다.

 

파이토치에서 신경망을 구성하기 위한 대부분의 모듈은 코어 모듈(torch.nn)의 하위 모듈로 [nn.Conv1d/nn. ReLU/nn.MSELoss] 등과 같이 여러 Layers/Activation/Loss 를 지원한다. 모델의 최적화를 위해서는 torch.optim을 지원한다.

 

효율적인 학습을 위한 데이터 핸들링에 필요한 기능들 torch.utils.data.dataloader 를 통해 지원한다.

 

Multi-Node / Multi-GPU 머신을 활용한 분산/병렬 처리를 데이터 로딩과 학습 연산에 사용할 수 있도록 torch.nn.DataParallel torch.distributed를 지원한다. 관련하여 다른 글에서 정리해보고 싶다!! [관련 내용]

 

파이토치에서는 torch.utils.tensorboard 를 통해 Tensorboard를 지원한다.

 

또한 각각 도메인에서 활용가능한 PyTorch Library들이 존재 한다.

파이토치는 딥러닝 모델 성능 향상을 위해서 여러가지 Quantization 방법을 지원한다.

 

마지막으로 파이토치는 배포 환경을 고려하여 high performance inference 위한 TorchScript를 제공한다. TorchScript는 Python 인터프리터의 비용을 줄이고 Python 런타임으로부터 독립적으로 모델을 실행시키기 위한 방법이다. 효율적 연산을 위해 Just in Time(JIT)을 지원한다.


Rerference

 

[1] www.pytorch.org/

[2] www.yytorch.org/assets/deep-learning/Deep-Learning-with-PyTorch.pdf

+ Recent posts