====== TensorFlow: Průvodce frameworkem pro Deep Learning ====== **TensorFlow** je open-source knihovna pro strojové učení a hluboké učení (deep learning), kterou vyvinul tým Google Brain. Je navržena tak, aby umožňovala snadné škálování výpočtů od mobilních zařízení až po obrovské klastry v datových centrech. ===== Klíčové vlastnosti ===== * **Ekosystém:** TensorFlow není jen knihovna, ale celá platforma zahrnující nástroje pro vizualizaci (TensorBoard), nasazení (TF Serving) a mobilní zařízení (TF Lite). * **Flexibilita:** Umožňuje definovat výpočty pomocí grafů, což optimalizuje výkon na CPU, GPU i TPU. * **Keras API:** Od verze 2.0 je vysokoúrovňové rozhraní Keras integrováno přímo do TensorFlow, což drasticky zjednodušilo psaní kódu. ===== Co je to Tensor? ===== Základní datovou jednotkou v TensorFlow je **Tensor**. Je to v podstatě vícerozměrné pole (zobecnění matice). ^ Typ ^ Rozměr ^ Příklad ^ | Skalár | 0D | `5` | | Vektor | 1D | `[1, 2, 3]` | | Matice | 2D | `[[1, 2], [3, 4]]` | | Tensor | nD | Pole s n-dimenzemi | ===== Architektura TensorFlow ===== Výpočty v TensorFlow probíhají formou **datových toků** (data flow graphs). Uzly v grafu představují matematické operace, zatímco hrany představují tensory, které mezi nimi proudí. ==== 1. TensorFlow Core ==== Nízkoúrovňové C++ engine, který se stará o distribuované výpočty a komunikaci s hardwarem. ==== 2. Keras (Vysoká úroveň) ==== Uživatelsky přívětivé API pro rychlé prototypování. Většina vývojářů pracuje právě zde. ==== 3. TensorFlow Extended (TFX) ==== End-to-end platforma pro nasazení produkčních ML modelů (pipeline, správa dat). ===== Příklad kódu: Lineární regrese ===== Následující ukázka ukazuje, jak v TensorFlow 2.x vytvořit jednoduchý model: import tensorflow as tf from tensorflow.keras import layers # Vytvoření sekvenčního modelu model = tf.keras.Sequential([ layers.Dense(64, activation='relu', input_shape=(10,)), layers.Dense(1) ]) # Kompilace modelu model.compile(optimizer='adam', loss='mean_squared_error', metrics=['mae']) # Výpis struktury model.summary() ===== Výhody a nevýhody ===== ^ Výhody ^ Nevýhody ^ | Špičková podpora pro produkční nasazení | Vyšší strmost učení oproti PyTorch | | Podpora pro TPU (Tensor Processing Units) | Někdy zbytečně komplexní dokumentace | | Velká komunita a množství návodů | Starší verze (1.x) nejsou kompatibilní s 2.x | ===== Nástroje pro vizualizaci ===== Jednou z největších zbraní TensorFlow je **TensorBoard**. Umožňuje sledovat: * Průběh ztrátové funkce (loss) a přesnosti (accuracy) v reálném čase. * Strukturu výpočetního grafu. * Histogramy vah a biasů v neuronové síti. > **Poznámka:** Pokud s TensorFlow začínáte, doporučuje se využít službu **Google Colab**, která nabízí zdarma přístup k výkonným GPU přímo v prohlížeči. ---- **Související témata:** * [[ai:neural_networks|Úvod do neuronových sítí]] * [[ai:pytorch|Srovnání s PyTorch]] * [[ai:keras|Podrobný manuál pro Keras]]