Plan Szkolenia
Wprowadzenie
- Wprowadzenie do TensorFlow i głębokiego uczenia
- Przypadki zastosowania i aplikacje TensorFlow
- Ekosystem TensorFlow i narzędzia
- Prace (workflows) w uczeniu maszynowym i głębokim uczeniu
- Przegląd celów kursu i ćwiczeń praktycznych
TensorFlow 2.x w porównaniu z poprzednimi wersjami — co nowego
- Kluczowe różnice między TensorFlow 1.x a 2.x
- Wykonywanie natychmiastowe (Eager execution)
- Uproszczone interfejsy API i ulepszona użyteczność
- Zmiany w konstruowaniu i trenowaniu modeli
- Wprowadzenie do Keras jako zaawansowanego API
- Rozważania dotyczące migracji istniejących aplikacji TensorFlow
- Best practice dla TensorFlow 2.x
Instalacja i konfiguracja TensorFlow 2.x
- Instalowanie TensorFlow
- Skonfigurowanie środowiska Pythona
- Weryfikacja instalacji TensorFlow
- Instalowanie i zarządzanie wymaganymi zależnościami
- Skonfigurowanie środowisk CPU i GPU
- Używanie TensorFlow w notatkach Jupyter
- Podstawowe polecenia i operacje w TensorFlow
- Rozwiązywanie problemów z instalacją i konfiguracją
Przegląd funkcji i architektury TensorFlow 2.x
- Architektura TensorFlow i kluczowe komponenty
- Tensory i operacje tensorowe
- Zmienne i stałe
- Grafy obliczeniowe i natychmiastowe wykonywanie
- Automatyczne różniczkowanie
- Interfejsy API i moduły TensorFlow
- Integracja z Keras
- Rurki do danych (Data pipelines) z
tf.data - Serialezacja modeli i TensorFlow SavedModel
- Ekosystem TensorFlow i przepływ pracy deweloperskiego
Jak działają sieci neuronowe
- Fundamenty sztucznych sieci neuronowych
- Neurony, warstwy i architektury sieci
- Funkcje aktywacji
- Przesyłanie w przód (Forward propagation)
- Funkcje straty (Loss functions)
- Zwrotne rozprzestrzenianie błędu (Backpropagation)
- Gradient descent i optymalizacja
- Szybkość uczenia się i strategie optymalizacji
- Przeuczenie (Overfitting) i niedouczenie (Underfitting)
- Techniki regularizacji
- Zbiory danych treningowych, walidacyjnych i testowych
Tworzenie modeli głębokiego uczenia z użyciem TensorFlow 2.x
- Tworzenie tensorów i zmiennych
- Budowanie sieci neuronowych z użyciem Keras
- Interfejsy API modeli sekwencyjnych i funkcyjnych
- Definiowanie niestandardowych modeli i warstw
- Konfigurowanie optymalizatorów
- Dobór odpowiednich funkcji straty
- Trenowanie modeli z użyciem
fit() - Niestandardowe pętle treningowe
- Wywołania zwrotne (Callbacks) i monitorowanie treningu
- Zarządzanie punktami kontrolnymi modeli (checkpoints)
Analiza danych
- Rozumienie zbiorów danych do uczenia maszynowego
- Eksploracja danych strukturyzowanych i niestrukturyzowanych
- Wizualizacja danych
- Identyfikowanie wzorców i anomalii
- Obsługa brakujących i niespójnych danych
- Dzielenie danych na zbiory treningowe, walidacyjne i testowe
- Dobór odpowiednich cech (features)
- Przygotowywanie zbiorów danych do modeli TensorFlow
Przetwarzanie wstępne danych
- Normalizacja i standaryzacja danych
- Kodowanie danych kategorialnych
- Obsługa wartości brakujących
- Skalowanie cech
- Przetwarzanie wstępne obrazów
- Przetwarzanie wstępne tekstu
- Augmentacja danych
- Budowanie wydajnych rurek wejściowych
- Używanie
tf.data - Batching, losowe mieszanie (shuffling), cache'owanie i wczytywanie wyprzedzające (prefetching)
- Przygotowywanie danych do trenowania modeli
Budowanie modelu
- Dobór odpowiedniej architektury sieci neuronowej
- Definiowanie wejść i wyjść modelu
- Tworzenie gęstych sieci neuronowych (dense)
- Dobór funkcji aktywacji
- Konfigurowanie modelu do trenowania
- Dobór optymalizatorów i funkcji straty
- Trenowanie i walidacja modelu
- Monitorowanie metryk treningu
- Podnoszenie wydajności modelu
- Zapobieganie przeuczeniu
- Implementacja regularizacji i dropout
Implementacja klasyfikatora obrazów najwyższej klasy (state-of-the-art)
- Fundamenty klasyfikacji obrazów
- Przygotowywanie zbiorów danych obrazów
- Normalizacja i augmentacja obrazów
- Wahotowe sieci neuronowe (Convolutional neural networks)
- Warstwy konwolucji i pooling
- Projektowanie architektury klasyfikacji obrazów
- Uczenie transferowe (Transfer learning)
- Używanie modeli wstępnie wytrenowanych
- Dostrojenie (Fine-tuning) wstępnie wytrenowanych sieci
- Budowanie zaawansowanego klasyfikatora obrazów
- Ewaluacja wydajności klasyfikacji
Trenowanie modelu
- Konfigurowanie parametrów treningu
- Rozmiar partii (batch size) i epoki
- Dobór optymalizatora
- Harmonogram szybkości uczenia się (Learning-rate scheduling)
- Wywołania zwrotne treningu (Training callbacks)
- Wcześnie zatrzymywanie (Early stopping)
- Punkty kontrolne modeli (Checkpointing)
- Monitorowanie postępów treningu
- Wykrywanie przeuczenia
- Podnoszenie wydajności treningu
- Rozważania dotyczące trenowania rozproszonego
Trenowanie na GPU vs TPU
- Architektury CPU, GPU i TPU
- Zalety akceleracji sprzętowej
- Konfigurowanie TensorFlow do trenowania na GPU
- Rozumienie trenowania opartego na TPU
- Dobór sprzętu do różnych obciążeń
- Przenoszenie obliczeń między urządzeniami
- Zarządzanie pamięcią i zasobami obliczeniowymi
- Porównanie wydajności treningu
- Strategie trenowania rozproszonego i akcelerowanego
Ewaluacja modelu
- Dobór odpowiednich metryk ewaluacyjnych
- Dokładność, precyzja, recall i punktacja F1
- Metryki ewaluacji regresji
- Macierze błędów (Confusion matrices)
- Strategie walidacji
- Ewaluacja modeli klasyfikacyjnych
- Ewaluacja uogólnienia modelu
- Identyfikowanie słabych punktów modelu
- Porównywanie różnych konfiguracji modeli
Wytwarzanie predykcji (Making Predictions)
- Używanie wytrenowanych modeli do wnioskowania (inference)
- Przygotowywanie nowych danych wejściowych
- Wytwarzanie predykcji partiami i pojedynczo
- Interpretacja wyników modelu
- Prawdopodobieństwa klasyfikacji
- Predykcje regresji
- Budowanie przepływu pracy wnioskowania
- Obsługa nieznanego wcześniej danych
- Zarządzanie rurekami predykcji
Ewaluacja predykcji
- Analiza jakości predykcji
- Porównywanie predykcji z oczekiwanymi wynikami
- Identyfikowanie fałszywych pozytywów i fałszywych negatywów
- Analiza błędów
- Ewaluacja pewności modelu
- Wizualizacja wyników predykcji
- Wykrywanie biasu w danych i predykcjach
- Poprawa wydajności modelu na podstawie analizy predykcji
Debugowanie modelu
- Identyfikowanie powszechnych problemów treningowych
- Diagnozowanie błędnych predykcji
- Debugowanie rurek do danych
- Badanie zachowania straty i metryk
- Wykrywanie eksplodujących i zanikających gradientów
- Diagnozowanie przeuczenia i niedouczenia
- Inspekcja warstw i wyników modelu
- Używanie narzędzi do debugowania i profilowania TensorFlow
- Poprawa stabilności i wydajności modelu
Zapisywanie modelu
- Zapisywanie wytrenowanych modeli
- Format TensorFlow SavedModel
- Zapisywanie i przywracanie wag modelu
- Zapisywanie architektury i konfiguracji modelu
- Ładowanie modeli do wnioskowania
- Wersjonowanie modeli
- Eksportowanie modeli do wdrożenia
- Zarządzanie artefaktami modeli
- Przygotowywanie modeli do środowisk produkcyjnych
Wdrażanie modelu do chmury
- Wprowadzenie do wdrażania modeli w chmurze
- Przygotowywanie modeli TensorFlow do produkcji
- Serwowanie modeli przez API
- Concepty serwowania modeli (Model serving)
- Konteneryzacja aplikacji TensorFlow
- Wnioskowanie w chmurze (Cloud-based inference)
- Skalowanie obciążeń serwowania modeli
- Monitorowanie wdrożonych modeli
- Zarządzanie wersjami modeli
- Rozważania dotyczące wdrożenia produkcyjnego
Wdrażanie modelu na urządzenie mobilne
- Wyzwania uczenia maszynowego na urządzeniach mobilnych
- TensorFlow Lite
- Konwertowanie modeli TensorFlow do wdrożenia mobilnego
- Optymalizacja modeli i redukcja rozmiaru
- Kwantyzacja
- Wykonywanie wnioskowania na urządzeniach mobilnych
- Zarządzanie zasobami urządzenia mobilnego
- Integracja modeli z aplikacjami mobilnymi
- Testowanie wydajności wnioskowania mobilnego
Wdrażanie modelu na system wbudowany (IoT)
- Uczenie maszynowe na urządzeniach wbudowanych
- TensorFlow Lite do aplikacji wbudowanych
- Ograniczenia zasobów i optymalizacja
- Redukcja rozmiaru modelu i wymagań obliczeniowych
- Wnioskowanie na krawędzi (Edge inference)
- Przetwarzanie danych czujników i danych w czasie rzeczywistym
- Wykonywanie predykcji lokalnie
- Rozważania dotyczące zasilania i pamięci
- Integracja modeli TensorFlow z pracami (workflows) IoT
- Testowanie i monitorowanie wdrożeń na krawędzi
Integracja modelu z różnymi językami
- Interoperacyjność modeli TensorFlow
- Serwowanie modeli przez API
- Używanie modeli TensorFlow z różnych środowisk programistycznych
- Integracja modeli oparta na Pythonie
- Integracja modeli z aplikacjami internetowymi
- Wnioskowanie modelu przez usługi oparte na REST
- Integracja TensorFlow z istniejącymi aplikacjami
- Wymiana danych i serializacja
- Rozważania dotyczące integracji produkcyjnej
Rozwiązywanie problemów (Troubleshooting)
- Diagnozowanie problemów z instalacją TensorFlow
- Rozwiązywanie błędów budowania modeli
- Debugowanie problemów z przetwarzaniem wstępnym danych
- Rozwiązywanie awarii treningu
- Badanie problemów z konfiguracją GPU i TPU
- Diagnozowanie problemów z pamięcią i wydajnością
- Rozwiązywanie problemów z ładowaniem i zapisywaniem modeli
- Debugowanie problemów wdrożeniowych
- Praktyczne ćwiczenia z rozwiązywania problemów
Podsumowanie i zakończenie
- Przegląd koncepcji TensorFlow 2.x
- Przegląd prac (workflows) sieci neuronowych i głębokiego uczenia
- Przegląd przygotowania danych i rozwoju modeli
- Przegląd klasyfikacji obrazów
- Przegląd technik treningu i ewaluacji
- Przegląd debugowania i optymalizacji modeli
- Przegląd wdrażania w chmurze, na urządzeniach mobilnych i w IoT
- Best practice w rozwoju z użyciem TensorFlow
- Ostatnie ćwiczenie praktyczne
- Pytania i dyskusja
Wymagania
- Doświadczenie programistyczne w Pythonie.
- Znajomość wiersza poleceń Linux.
Grupa docelowa
- Programiści
- Naukowcy danych
Opinie uczestników (7)
Dużo wiedzy eksperckiej, odpowiedzi trenera na pytania rzeczowe i konkretne. Dostosowanie treści do naszych potrzeb. Wiedza dobrze usystematyzowana.
Augustyn - Samsung Electronics Polska Sp. z o.o.
Szkolenie - Deep Learning with TensorFlow 2
Szkolenie było dobrze zorganizowane i przemyślane, a dzięki niemu nabyłem systematyczną wiedzę oraz pełny przegląd tematów, które omawialiśmy.
Magdalena - Samsung Electronics Polska Sp. z o.o.
Szkolenie - Deep Learning with TensorFlow 2
Przetłumaczone przez sztuczną inteligencję
Wiedza trenera i fakt, że byli bardzo otwarci. Umiejętnie przekazywaliważne informacje.
Mateusz Stachyra - Samsung Electronics Polska Sp. z o.o.
Szkolenie - Deep Learning with TensorFlow 2
Przetłumaczone przez sztuczną inteligencję
Podobało mi się, że omówiliśmy również podstawy
Tomasz - Samsung Electronics Polska Sp. z o.o.
Szkolenie - Deep Learning with TensorFlow 2
Przetłumaczone przez sztuczną inteligencję
Przyjemna atmosfera, obszerna wiedza trenera, wyczerpujące odpowiedzi na zadawane pytania, nawet takie wychodzące poza tematykę szkolenia.
Mateusz Pilecki - AGH
Szkolenie - Deep Learning with TensorFlow 2
Rozmaite przykłady jak stosować sieci neuronowe w różnych kontekstach. Notebooki były na wysokim poziomie. Można było się również dowiedzieć trochę o innych narzędziach przydatnych w pracy z Machine Learningiem.
Dominik Zurek - AGH
Szkolenie - Deep Learning with TensorFlow 2
Duża różnorodność podejść, danych, problemów do rozwiązania. Ogromna przestrzeń do zadawania pytań na tematy techniczne a także około branżowe.