PyTorch je open-source knihovna pro strojové učení (Machine Learning), založená na knihovně Torch. Primárně je vyvíjena týmem pro výzkum AI společnosti Meta (dříve Facebook). PyTorch je oceňován zejména pro svou intuitivnost, rychlost a dynamický výpočetní graf, což z něj činí standard pro vědecký výzkum i moderní produkční nasazení (např. v Tesle nebo OpenAI).
PyTorch stojí na třech základních konceptech:
Tenzor je základní datová struktura v PyTorch. Je velmi podobný polím v knihovně NumPy (ndarray), ale s jedním zásadním rozdílem: tenzory mohou být akcelerovány pomocí GPU (grafických karet) s využitím CUDA nebo ROCm, což dramaticky zrychluje výpočty.
Pro trénování neuronových sítí je klíčový algoritmus Backpropagation. Modul autograd v PyTorch automaticky zaznamenává všechny operace nad tenzory a vypočítává gradienty (derivace), které jsou nezbytné pro aktualizaci vah sítě.
Na rozdíl od starších verzí TensorFlow, které používaly statické grafy, PyTorch buduje graf výpočtů za běhu (dynamicky). To umožňuje používat standardní Python konstrukce jako if podmínky nebo for cykly přímo v architektuře sítě, což usnadňuje ladění (debugging).
| Vlastnost | PyTorch | TensorFlow |
|---|---|---|
| Výpočetní graf | Dynamický (vždy) | Statický (původně), nyní i dynamický |
| Ladění (Debug) | Snadné (standardní Python debuggery) | Složitější (vyžaduje speciální nástroje) |
| Nasazení (Prod) | Velmi dobré (TorchScript, ONNX) | Vynikající (TF Serving, TF Lite) |
| Popularita | Dominantní ve výzkumu | Silný v komerční sféře a mobilních aplikacích |
PyTorch je navržen tak, aby maximálně využíval hardware:
— Související termíny: Neuronové sítě, CUDA, Python, TensorFlow, GPU.