| 딥 러닝 라이브러리 | ||||
| {{{#!wiki style="margin: 0 -10px;" {{{#!folding [ 주요 라이브러리 ] {{{#!wiki style="margin-bottom: -15px;" | | | | |
| PyTorch | TensorFlow | Keras | JAX |
| <colcolor=#000000,#ffffff> PyTorch 파이토치 | |
| | |
| 버전 | 2.9.0[1] 2025년 10월 16일 업데이트 |
| 공개일 | 2016년 9월 1일 |
| | |
| <colcolor=#000000,#ffffff> |
1. 개요
토치 (Torch) 및 카페 2 (Caffe 2)를 기반으로 한 기계 학습 라이브러리이다.[2]2. 상세
2015년에 설립된 FAIR(페이스북 인공지능 연구소)에 의해 주로 개발되어 왔다. 2016년 9월에 처음으로 공개되었다. 페이스북에서는 PyTorch와 Caffe2를 둘다 사용하고 있었는데, 두 가지 프레임워크를 사용하다보니 호환성 문제가 발생해서 결국 2017년 9월에 마이크로소프트와 협업하여 2018년 3월에 Caffe2를 PyTorch에 합쳐버렸다.TensorFlow와 마찬가지로, NumPy의 배열을 Tensor로 가져올 수 있고, 이를 쉽게 GPU 메모리에 올려 연산도 할 수 있다. TensorFlow가 v2.0 출시 이후 친 keras 행보를 보이며 자유로운 네트워크 수정의 난이도가 점점 높아지자, 연구원들 사이에서는 PyTorch의 사용 비중이 높아졌으며, 이제 인공지능 학계에서 널리 사랑받는 라이브러리로 자리매김했다.
테슬라의 Dojo 슈퍼컴퓨터 구축에 메인 프로그램으로 사용되었다.
파이토치의 각 버전마다 여러 CUDA버전을 지원하며, 지원하는 버전은 설치 가이드를 보면 알 수 있다.
알파고를 개발한 구글 딥마인드도 토치를 바탕으로 연구, 개발을 했었지만, 2016년 4월 토치가 아닌 TensorFlow로 개발 프레임워크로의 전환을 발표했다. 그러나 2020년대부터 구글은 텐서플로우를 버리고 JAX로 옮겨갔다.
2.1. torch
#!syntax python
import torch
from torch import nn
from torch import amp
from torch import onnx
from torch import optim
import torch.nn.functional as F
import torch.distributed as dist
import torch.multiprocessing as mpPyTorch의 필수 라이브러리다. 신경망 래퍼, 레이어, 백엔드, 손실 함수, 옵티마이저, 스케줄러, 모델 컴파일, 데이터 엔지니어링 등과 관련된 기본적인 모듈이 있다.
2.2. torchaudio
PyTorch에서 제공하는 음성 관련 데이터 프로세싱 및 머신 러닝 라이브러리다.2.3. torchvision
PyTorch에서 제공하는 이미지나 영상등 시각적인 요소 관련 데이터의 프로세싱 및 머신 러닝을 처리하는 라이브러리다.2.4. torchtext
PyTorch에서 제공하는 텍스트 및 OCR (Optical Character Recognition) 특화 데이터 프로새싱 및 머신 러닝 라이브러리다. 현재는 deprecated 상태다.2.5. torchdata
PyTorch 개발진이 torch에 있는 데이터 관련 모듈을 추상화 및 병렬화한 래퍼가 들어 있는 데이터 엔지니어링 (Data Engineering) 특화 라이브러리다.2.6. torchtune
PyTorch에서 제공하는 파인 튜닝 (Fine Tuning) 관련 라이브러리다.2.7. torchscale
Microsoft가 제공하는 신경망 관련 라이브러리다. RetNet, MSR (Multi-Scale Retention) 커널을 중심으로 리텐션 (Retention) 위주의 레이어, 연산 커널이 수록되어 있다.2.8. torchrl
PyTorch에서 제공하는 강화 학습 (Reinforcement Learning) 관련 라이브러리다.2.9. torchao
PyTorch에서 제공하는 아키텍처 최적화 (Architecture Optimization) 관련 라이브러리다. 주로 저비트 AMP (Automatic Mixed Precision), 저비트 옵티마이저, 저비트 레이어, 양자화 관련 모듈이 있다.2.10. tensordict
PyTorch에서 제공하는 특화 텐서 관련 라이브러리. 현재 nightly 빌드만 있다.2.11. torch-xla
#!syntax python
import torch_xla as xla
from torch_xla.core import xla_model
from torch_xla.distributed import xla_backendPyTorch 개발진과 구글에서 PyTorch 내에서 클라우드 TPU와 연동시키기 위해 개발한 라이브러리
2.12. torch-directml
#!syntax python
import torch_directml as directmlMicrosoft가 PyTorch 내에서 DirectML을 연동시키기 위해 개발한 라이브러리
2.13. transformer-engine
#!syntax python
import transformer_engine.pytorch as teNVIDIA에서 제공하는 CUDA 백엔드 전용 PyTorch 및 JAX 라이브러리로 NVIDIA GPU에 최적화된 저비트 옵티마이저, 저비트 레이어, 저비트 AMP 관련 모듈이 있다. pip install transformer-engine-torch로 설치해야 한다. 설치에 시간이 오래 걸린다.
3. 관련 문서
| Zero to Mastery Learn PyTorch for Deep Learning(위 영상의 텍스트 버전) |
| 위 영상에 내용이 추가된 유데미 유료 강의 |
3.1. 사용자 모임
3.2. 설치 방법
3.3. 튜토리얼
3.4. 학습 자료
- PyTorch로 시작하는 딥 러닝 입문
- 모모딥 시즌2
- PyTorchZeroToAll (in English) - 한국어 요약 블로그
- Stanford University CS231n, Spring 2017 - 한글번역자막
- 딥러닝 홀로서기
- 더북(TheBook) - 딥러닝 파이토치 교과서, 모두의 딥러닝 개정 3판
- 한곳에서 끝내는 파이썬 & 머신러닝 & 딥러닝