Návrh Školení
Úvod
- Úvod do TensorFlowu a hlubokého učení
- Použití a aplikace TensorFlowu
- Ekosystém TensorFlowu a nástroje
- Pracovní postupy v machine learningu a hlubokém učení
- Přehled cílů kurzu a praktických cvičení
TensorFlow 2.x vs. předchozí verze — co je nového
- Hlavní rozdíly mezi TensorFlowem 1.x a 2.x
- Spěchaní na pozadí (eager execution)
- Zjednodušené API a vylepšená použitelnost
- Změny ve stavbě a trénování modelů
- Úvod do Keras jako vyšší úrovně API
- Úvahy týkající se migrace stávajících aplikací TensorFlow
- Doporučené postupy pro TensorFlow 2.x
Nastavení TensorFlowu 2.x
- Instalace TensorFlowu
- Konfigurace prostředí Python
- Ověření instalace TensorFlowu
- Instalace a správa požadovaných závislostí
- Konfigurace prostředí CPU a GPU
- Používání TensorFlowu s Jupyter notebooky
- Základní příkazy a operace TensorFlowu
- Řešení problémů s instalací a konfigurací
Přehled funkcí a architektury TensorFlowu 2.x
- Architektura TensorFlowu a jádrové komponenty
- Tensor a operace s tenzory
- Proměnné a konstanty
- Výpočetní grafy a spěchaní na pozadí (eager execution)
- Automatické derivování
- API a moduly TensorFlowu
- Integrace Keras
- Datapipeliny pomocí
tf.data - Serionalizace modelů a TensorFlow SavedModel
- Ekosystém TensorFlowu a vývojový proces
Jak fungují neuronové sítě
- Základy umělých neuronových sítí
- Neurony, vrstvy a architektury sítí
- Aktivacioní funkce
- Přímá propagace
- Funkce ztráty (loss functions)
- Zpětná propagace
- Metoda gradientu klesajícího a optimalizace
- Učící rychlosti a strategie optimalizace
- Přeučení a nedostatečné učení
- Techniky regularizace
- Datové sady pro trénování, validaci a testování
Používání TensorFlowu 2.x pro vytváření modelů hlubokého učení
- Vytváření tenzorů a proměnných
- Stavba neuronových sítí pomocí Keras
- Sequentní a funkcionální API pro modely
- Definice vlastních modelů a vrstev
- Konfigurace optimalizátorů
- Výběr vhodných funkcí ztráty
- Trénování modelů pomocí
fit() - Vlastní smyčky trénování
- Volání zpět (callbacks) a monitorování trénování
- Správa kontrolních bodů modelů (checkpoints)
Analýza dat
- Pochopení datových sad pro machine learning
- Prozkoumání strukturovaných a nestrukturovaných dat
- Vizualizace dat
- Identifikace vzorců a odchylek
- Zpracování chybějících a nekonzistentních dat
- Rozdělení dat na trénovací, validační a testovací sady
- Výběr relevantních znaků
- Příprava datových sad pro modely TensorFlowu
Předzpracování dat
- Normalizace a standardizace dat
- Kódování kategoriech dat
- Zpracování chybějících hodnot
- Měřítko znaků (feature scaling)
- Předzpracování obrázků
- Předzpracování textu
- Zmenšení a zvětšení dat (data augmentation)
- Stavba efektivních vstupních datapixelů
- Použití
tf.data - Dávkování, promíchávání, ukládání do mezipaměti a předčítání
- Příprava dat pro trénování modelu
Stavba modelu
- Výběr vhodné architektury neuronové sítě
- Definice vstupů a výstupů modelu
- Vytváření hustých neuronových sítí
- Výběr aktivacioních funkcí
- Konfigurace modelu pro trénování
- Výběr optimalizátorů a funkcí ztráty
- Trénování a validace modelu
- Monitorování metrik trénování
- Zlepšování výkonu modelu
- Prevence přeučení
- Implementace regularizace a dropout
Implementace špičkového klasifikátoru obrázků
- Základy klasifikace obrázků
- Příprava datových sad obrázků
- Normalizace a augmentace obrázků
- Konvoluční neuronové sítě
- Konvoluční a poolovací vrstvy
- Design architektury klasifikace obrázků
- Přenášení učení (transfer learning)
- Použití předtrénovaných modelů
- Doladění předtrénovaných sítí
- Stavba pokročilého klasifikátoru obrázků
- Hodnocení výkonu klasifikace
Trénování modelu
- Konfigurace parametrů trénování
- Velikost dávky (batch size) a éry
- Výběr optimalizátoru
- Nastavení učící rychlosti
- Volání zpět pro trénování
- Brzké zastavení (early stopping)
- Ukládání kontrolních bodů modelu
- Monitorování pokroku trénování
- Detekce přeučení
- Zlepšování výkonu trénování
- Distributivní trénování a úvahy týkající se akcelerace
Trénování na GPU vs. TPU
- Architektury CPU, GPU a TPU
- Výhody hardwarové akcelerace
- Konfigurace TensorFlowu pro trénování na GPU
- Pochopení trénování založeného na TPU
- Výběr hardwaru pro různé úlohy
- Přenos výpočtů mezi zařízeními
- Správa paměti a výpočetních zdrojů
- Srovnání výkonu trénování
- Distributivní strategie a strategie akcelerace trénování
Hodnocení modelu
- Výběr vhodných metrik hodnocení
- Přesnost, presize, recall a skóre F1
- Metriky hodnocení regrese
- Matice zmatku (confusion matrices)
- Strategie validace
- Hodnocení klasifikačních modelů
- Hodnocení generalizace modelu
- Identifikace slabých míst modelu
- Srovnání různých konfigurací modelů
Provádění predikcí
- Používání trénovaných modelů pro inferenci
- Příprava nových vstupních dat
- Provádění dávkových a jednotlivých predikcí
- Interpretace výstupů modelu
- Pravděpodobnosti klasifikace
- Predikce regrese
- Stavba pracovního postupu inferenční
- Zpracování neznámých dat
- Správa predikčních datapixelů
Hodnocení predikcí
- Analýza kvality predikcí
- Srovnání predikcí s očekávanými výsledky
- Identifikace falešně pozitivních a falešně negativních výsledků
- Analýza chyb
- Hodnocení důvěry modelu
- Vizualizace výsledků predikcí
- Detekce zkreslení v datech a predikcích
- Zlepšování výkonu modelu na základě analýzy predikcí
Ladění modelu
- Identifikace běžných problémů s trénováním
- Diagnostika nesprávných predikcí
- Ladění datapixelů
- Prozkoumání chování funkcí ztráty a metrik
- Detekce explozivních a vymizelých gradientů
- Diagnostika přeučení a nedostatečného učení
- Prohlížení vrstev modelu a výstupů
- Používání nástrojů pro ladění a profilování TensorFlowu
- Zlepšování stability a výkonu modelu
Ukládání modelu
- Ukládání trénovaných modelů
- Formát TensorFlow SavedModel
- Ukládání a obnovování váh modelu
- Ukládání architektury a konfigurace modelu
- Nahrávání modelů pro inferenci
- Verzování modelů
- Export modelu pro nasazení
- Správa artefaktů modelu
- Příprava modelů pro produkční prostředí
Nasazení modelu do cloudu
- Úvod do nasazení modelů do cloudu
- Příprava modelů TensorFlowu pro produkci
- Servírování modelů prostřednictvím API
- Concepts servírování modelů
- Kontejnerizace aplikací TensorFlow
- Cloudová inference
- Měření škálovatelnosti úloh servírování modelů
- Monitorování nasazených modelů
- Správa verzí modelů
- Úvahy týkající se nasazení do produkce
Nasazení modelu na mobilní zařízení
- Výzvy mobilního machine learningu
- TensorFlow Lite
- Konverze modelů TensorFlowu pro mobilní nasazení
- Optimalizace modelu a zmenšování velikosti
- Kvantizace
- Spouštění inferenční na mobilních zařízeních
- Správa zdrojů mobilního zařízení
- Integrace modelů do mobilních aplikací
- Testování výkonu mobilní inferenční
Nasazení modelu do vestavěného systému (IoT)
- Machine learning na vestavěných zařízeních
- TensorFlow Lite pro vestavěné aplikace
- Omezení zdrojů a optimalizace
- Zmenšování velikosti modelu a výpočetních požadavků
- Hraniční inference (edge inference)
- Zpracování senzorových a reálných dat v reálném čase
- Spouštění predikcí lokálně
- Úvahy týkající se energie a paměti
- Integrace modelů TensorFlowu do pracovních postupů IoT
- Testování a monitorování hraničních nasazení
Integrace modelu s různými programovacími jazyky
- Interoperabilita modelů TensorFlowu
- Servírování modelů prostřednictvím API
- Používání modelů TensorFlowu z různých programovacích prostředí
- Integrace modelů založená na Pythonu
- Integrace modelů do webových aplikací
- Inference modelu prostřednictvím REST služeb
- Integrace TensorFlowu do stávajících aplikací
- Výměna a serializace dat
- Úvahy týkající se produkční integrace
Řešení problémů
- Diagnostika problémů s instalací TensorFlowu
- Řešení chyb při stavbě modelů
- Ladění problémů s předzpracováním dat
- Řešení selhání trénování
- Prozkoumání problémů s konfigurací GPU a TPU
- Diagnostika problémů s pamětí a výkonem
- Řešení problémů s načítáním a ukládáním modelů
- Ladění problémů s nasazením
- Praktická cvičení k řešení problémů
Shrnutí a závěr
- Rekapitulace konceptů TensorFlowu 2.x
- Rekapitulace pracovních postupů neuronových sítí a hlubokého učení
- Rekapitulace přípravy dat a vývoje modelů
- Rekapitulace klasifikace obrázků
- Rekapitulace technik trénování a hodnocení
- Rekapitulace ladění a optimalizace modelů
- Rekapitulace nasazení do cloudu, na mobilní zařízení a IoT
- Doporučené postupy pro vývoj s TensorFlowem
- Finální praktické cvičení
- Diskuse otázek
Požadavky
- Zkušenosti s programováním v jazyce Python.
- Zkušenosti s příkazovou řádkou Linuxu.
Cílová skupina
- Vývojáři
- Data scientisti
Reference (4)
Školení bylo organizované a dobře naplánované, a já z něj vyšel s systémovou znalostí a dobrým přehledem o tématech, které jsme probral.
Magdalena - Samsung Electronics Polska Sp. z o.o.
Kurz - Deep Learning with TensorFlow 2
Přeloženo strojem
Vědění školenáře a skutečnost, že byli velmi přístupní. Dokázali snadno předat důležité znalosti.
Mateusz Stachyra - Samsung Electronics Polska Sp. z o.o.
Kurz - Deep Learning with TensorFlow 2
Přeloženo strojem
Rád jsem, že jsme zahrnuli i základy.
Tomasz - Samsung Electronics Polska Sp. z o.o.
Kurz - Deep Learning with TensorFlow 2
Přeloženo strojem
Instruktor vysvětlil obsah velmi jasně a byl angažující po celou dobu. Zastavoval se, aby nám klady otázky, a nechal nás samostatně hledat řešení během praktických sekcí. Kromě toho přizpůsobil kurz dobře naše potřebám.
Robert Baker
Kurz - Deep Learning with TensorFlow 2.0
Přeloženo strojem