====== PyTorch ====== **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). ===== Klíčové pilíře PyTorch ===== PyTorch stojí na třech základních konceptech: ==== 1. Tenzory (Tensors) ==== 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. ==== 2. Autograd (Automatické derivování) ==== 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ě. ==== 3. Dynamický výpočetní graf (Eager Execution) ==== 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). ===== Hlavní moduly ===== * **torch.nn:** Obsahuje stavební bloky pro neuronové sítě (vrstvy, aktivační funkce, ztrátové funkce). * **torch.optim:** Implementuje optimalizační algoritmy jako **SGD**, **Adam** nebo **RMSprop**. * **torch.utils.data:** Nástroje pro efektivní načítání a zpracování velkých objemů dat (Dataset a DataLoader). ===== Proč zvolit PyTorch? ===== * **Pythonic Nature:** Kód vypadá a chová se jako čistý Python, což snižuje křivku učení. * **Silná komunita:** Většina aktuálních vědeckých prací o AI (např. na ArXiv) publikuje kód právě v PyTorch. * **Libtorch:** Možnost exportovat modely do C++ pro vysokorychlostní nasazení v embedded systémech. * **Ekosystém:** Podpora pro počítačové vidění (TorchVision), zpracování textu (TorchText) a zvuk (TorchAudio). ===== Srovnání: PyTorch vs. TensorFlow ===== ^ 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 | ===== Hardwarová akcelerace ===== PyTorch je navržen tak, aby maximálně využíval hardware: * **CUDA:** Pro grafické karty NVIDIA (nejčastější volba). * **MPS (Metal Performance Shaders):** Pro akceleraci na procesorech Apple Silicon (M1/M2/M3). * **TPU:** Podpora pro Google Tensor Processing Units přes knihovnu XLA. --- **Související termíny:** [[neural_networks|Neuronové sítě]], [[cuda|CUDA]], [[python|Python]], [[tensor_flow|TensorFlow]], [[gpu|GPU]].