====== TensorFlow ====== **TensorFlow** je komplexní open-source platforma pro strojové učení (Machine Learning), kterou vyvinul tým **Google Brain**. Je navržena tak, aby usnadnila proces od výzkumu až po nasazení modelů do reálného provozu na různých zařízeních – od výkonných serverových clusterů až po chytré telefony a IoT zařízení. Název je odvozen od operací, které neuronové sítě provádějí nad vícedimenzionálními datovými poli, zvanými **tenzory**. ===== Klíčové vlastnosti TensorFlow ===== TensorFlow se postupem času vyvinul v ucelený ekosystém, který zahrnuje: ==== 1. Keras API (Vysokoúrovňové rozhraní) ==== Keras je oficiální rozhraní pro TensorFlow, které umožňuje definovat a trénovat neuronové sítě pomocí pár řádků kódu. Je velmi intuitivní a zaměřené na uživatelskou přívětivost. ==== 2. Flexibilita nasazení (Deployment) ==== TensorFlow vyniká v tom, co se stane s modelem *po* trénování: * **TF Serving:** Pro vysoce výkonné nasazení na produkčních serverech. * **TF Lite:** Pro běh modelů na mobilních zařízeních (Android, iOS) a mikrokontrolérech (Arduino). * **TF.js:** Umožňuje trénovat a spouštět modely přímo v prohlížeči pomocí JavaScriptu. ==== 3. TensorBoard (Vizualizace) ==== Unikátní nástroj pro vizualizaci trénovacího procesu. Umožňuje sledovat metriky (přesnost, ztrátu), prohlížet strukturu výpočetního grafu a analyzovat histogramy vah v reálném čase. ===== Architektura a vývoj ===== TensorFlow prošel zásadní transformací mezi verzemi 1.x a 2.x: * **TensorFlow 1.x:** Používal statické výpočetní grafy. Uživatel musel nejprve definovat celou strukturu sítě a až poté ji spustit v rámci "Session". To bylo efektivní, ale velmi náročné na ladění. * **TensorFlow 2.x:** Zavedl tzv. **Eager Execution** (podobně jako PyTorch). Operace se provádějí okamžitě, což usnadňuje vývoj a debugging v Pythonu. ===== Srovnání: TensorFlow vs. PyTorch ===== ^ Vlastnost ^ TensorFlow ^ PyTorch ^ | **Hlavní vývojář** | Google | Meta (Facebook) | | **Produkční nasazení** | Vynikající (TFX, TF Serving) | Velmi dobré (TorchScript) | | **Mobilní/Edge zařízení** | Lídr trhu (TF Lite) | Rychle se dotahuje (ExecuTorch) | | **Styl kódu** | Integrovaný Keras (velmi strukturovaný) | Čistý Python (velmi flexibilní) | | **Vizualizace** | TensorBoard (v základu) | Externí nástroje (Visdom, WandB) | ===== Hardwarová podpora ===== TensorFlow je optimalizován pro širokou škálu hardwaru: * **GPU:** Plná podpora pro NVIDIA (CUDA/cuDNN). * **TPU (Tensor Processing Units):** Specializované čipy od Googlu, které jsou řádově rychlejší pro trénování obřích modelů než běžná GPU. * **CPU:** Optimalizace pomocí instrukčních sad jako AVX a FMA. ===== Kdy zvolit TensorFlow? ===== TensorFlow je ideální volbou, pokud plánujete model nasadit do rozsáhlé produkce, potřebujete jej spustit na mobilním telefonu, nebo pokud využíváte cloudovou infrastrukturu **Google Cloud**, která je pro TensorFlow nativně optimalizována. --- **Související termíny:** [[keras|Keras]], [[pytorch|PyTorch]], [[tpu|TPU]], [[machine_learning|Strojové učení]], [[onnx|ONNX]].