pytorch/pytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration

해결하는 문제

PyTorch는 딥 뉴럴 네트워크를 구축하고 훈련하는 유연한 방법을 제공하는 머신러닝 프레임워크입니다. NumPy와 유사한 고성능 텐서 연산이 필요하면서도, 훨씬 빠른 처리를 위해 GPU 가속을 활용할 수 있는 능력을 제공하여 문제를 해결합니다.

작동 방식

PyTorch는 역전파 자동 미분을 위해 "테이프 기반 autograd" 시스템을 사용합니다. 정적 프레임워크와 달리, 이를 통해 개발자는 오버헤드 없이 실행 중에 네트워크 동작을 동적으로 변경할 수 있습니다. Python과 깊게 통합되어 있어 사용자가 표준 Python 디버거와 NumPy, SciPy 같은 라이브러리를 사용할 수 있습니다. 이 프레임워크에는 최적화 가능하고 직렬화 가능한 모델을 만들기 위한 컴파일 스택(TorchScript)과 효율적인 GPU 사용을 위한 커스텀 메모리 할당자가 포함되어 있습니다.

대상

최대의 유연성과 속도가 필요한 딥러닝 연구자와 과학 계산을 위해 NumPy를 대체할 GPU 가속 도구를 찾는 개발자를 위해 설계되었습니다.

주요 특징

  • GPU 지원 텐서: CPU 또는 GPU에서 실행되는 슬라이싱, 인덱싱 및 선형 대수를 위한 고성능 텐서 루틴.
  • 동적 뉴럴 네트워크: 네트워크 동작을 지연 없이 임의로 변경할 수 있는 유연한 명령형 실행 모델.
  • Python 우선 설계: Python 생태계와 깊게 통합되어 Python 또는 C++로 작성된 커스텀 레이어를 허용합니다.
  • 효율적인 백엔드: Intel MKL, NVIDIA cuDNN, NCCL과 같은 가속 라이브러리를 통합하여 속도를 극대화하고 메모리 오버헤드를 최소화합니다.