====== Keras ====== **Keras** je vysokoúrovňové rozhraní (API) pro programování neuronových sítí, napsané v jazyce Python. Bylo navrženo se zaměřením na rychlé experimentování, přívětivost pro uživatele a modularitu. Keras nefunguje jako samostatná knihovna pro výpočty, ale běží nad tzv. "backendy" – nejčastěji nad **[[tensorflow|TensorFlow]]**. Od verze TensorFlow 2.0 je Keras jeho oficiálním a hlavním rozhraním (známé jako ''tf.keras''). ===== Hlavní principy Keras ===== * **Uživatelská přívětivost:** Keras minimalizuje počet akcí potřebných pro běžné úkoly a poskytuje jasnou zpětnou vazbu při chybách. * **Modularita:** Model je v Kerasu chápán jako posloupnost nebo graf samostatných, plně konfigurovatelných modulů (vrstvy, aktivace, optimalizátory). * **Snadná rozšiřitelnost:** Nové moduly lze snadno přidávat jako nové třídy nebo funkce v Pythonu. ===== Dva způsoby definice modelů ===== Keras nabízí dvě hlavní cesty, jak postavit neuronovou síť: ==== 1. Sequential API (Sekvenční) ==== Nejjednodušší způsob, kde se vrstvy skládají za sebe jako "komín". Ideální pro 90 % běžných úloh. model = keras.Sequential([ layers.Dense(64, activation='relu'), layers.Dense(10, activation='softmax') ]) ==== 2. Functional API (Funkcionální) ==== Umožňuje definovat složité architektury, kde se vrstvy větví, sdílejí data nebo mají více vstupů a výstupů. Je nezbytné pro moderní sítě jako **ResNet** nebo Inception. ===== Ekosystém a Keras 3 ===== V roce 2023 byla představena verze **Keras 3**, která přinesla revoluční změnu: **Multi-backend support**. Keras už není pevně svázán pouze s TensorFlow, ale umožňuje spouštět stejný kód nad různými výpočetními jádry: * **[[tensorflow|TensorFlow]]**: Pro maximální stabilitu a nasazení. * **[[pytorch|PyTorch]]**: Pro výzkumníky, kteří preferují ekosystém Mety. * **JAX**: Pro extrémně výkonné vědecké výpočty od Googlu. ===== Výhody použití Keras ===== * **Rychlost prototypování:** To, co v nízkoúrovňovém kódu trvá hodiny, v Kerasu naprogramujete za minuty. * **Podpora pro CPU i GPU:** Keras automaticky detekuje dostupný hardware a využívá jej pro zrychlení trénování. * **Předtrénované modely:** Součástí knihovny je ''keras.applications'', kde najdete hotové a natrénované sítě (VGG16, ResNet50, MobileNet) připravené k okamžitému použití. ===== Srovnání: Keras vs. Čistý TensorFlow ===== ^ Vlastnost ^ Keras ^ Čistý TensorFlow (Low-level) ^ | **Abstrakce** | Vysoká (jednoduchá) | Nízká (komplexní) | | **Flexibilita** | Vysoká (postačující pro většinu) | Absolutní (pro vývoj nových typů operací) | | **Křivka učení** | Velmi mírná | Strmá | | **Produktivita** | Maximální | Nižší (vyžaduje více kódu) | --- **Související termíny:** [[tensorflow|TensorFlow]], [[pytorch|PyTorch]], [[neural_networks|Neuronové sítě]], [[python|Python]], [[deep_learning|Deep Learning]].