TinyML. Wykorzystanie TensorFlow Lite do uczenia maszynowego na Arduino i innych mikrokontrolerach (ebook) Rybnik

Może się wydawać, że profesjonalne systemy uczenia maszynowego wymagają sporych zasobów mocy obliczeniowej i energii. Okazuje się, że niekoniecznie: można tworzyć zaawansowane, oparte na sieciach neuronowych aplikacje, które doskonale poradzą sobie bez potężnych procesorów. Owszem, praca na …

od 54,45 Najbliżej: 22 km

Liczba ofert: 1

Oferta sklepu

Opis

Może się wydawać, że profesjonalne systemy uczenia maszynowego wymagają sporych zasobów mocy obliczeniowej i energii. Okazuje się, że niekoniecznie: można tworzyć zaawansowane, oparte na sieciach neuronowych aplikacje, które doskonale poradzą sobie bez potężnych procesorów. Owszem, praca na mikrokontrolerach podobnych do Arduino lub systemach wbudowanych wymaga pewnego przygotowania i odpowiedniego podejścia, jest to jednak fascynujący sposób na wykorzystanie niewielkich urządzeń o niskim zapotrzebowaniu na energię do tworzenia zdumiewających projektów. Ta książka jest przystępnym wprowadzeniem do skomplikowanego świata, w którym za pomocą techniki TinyML wdraża się głębokie uczenie maszynowe w systemach wbudowanych. Nie musisz mieć żadnego doświadczenia z zakresu uczenia maszynowego czy pracy z mikrokontrolerami. W książce wyjaśniono, jak można trenować modele na tyle małe, by mogły działać w każdym środowisku - również Arduino. Dokładnie opisano sposoby użycia techniki TinyML w tworzeniu systemów wbudowanych opartych na zastosowaniu ucze nia maszynowego. Zaprezentowano też kilka ciekawych projektów, na przykład dotyczący budowy urządzenia rozpoznającego mowę, magicznej różdżki reagującej na gesty, a także rozszerzenia możliwości kamery o wykrywanie ludzi. W książce między innymi: praca z Arduino i innymi mikrokontrolerami o niskim poborze mocy podstawy uczenia maszynowego, budowy i treningu modeli TensorFlow Lite i zestaw narzędzi Google dla TinyML bezpieczeństwo i ochrona prywatności w aplikacji optymalizacja modelu tworzenie modeli do interpretacji różnego rodzaju danych Ograniczone zasoby? Poznaj TinyML! Spis treści: Wstęp Konwencje typograficzne przyjęte w tej książce Korzystanie z przykładowych kodów Podziękowania Rozdział 1. Wprowadzenie Urządzenia z systemem wbudowanym Ciągły rozwój Rozdział 2. Informacje wstępne Do kogo skierowana jest ta książka? Jaki sprzęt będzie Ci potrzebny? Jakie oprogramowanie będzie Ci potrzebne? Czego nauczysz się dzięki tej książce? Rozdział 3. Wprowadzenie do uczenia maszynowego Czym właściwie jest uczenie maszynowe? Proces uczenia głębokiego Określenie celu Zebranie zestawu danych Wybór danych Zbieranie danych Etykietowanie danych Nasz gotowy zestaw danych Zaprojektowanie architektury modelu Generowanie atrybutów z danych Tworzenie okien czasowych Normalizacja Myślenie z uczeniem maszynowym Trenowanie modelu Niedotrenowanie i przetrenowanie Trening, walidacja i testowanie Przekształcenie modelu Uruchomienie procesu wnioskowania Ocena i rozwiązanie ewentualnych problemów Podsumowanie Rozdział 4. Witaj, świecie TinyML: budowa i trenowanie modelu Co będziemy budować? Nasz zestaw narzędzi do uczenia maszynowego Python i Jupyter Notebooks Google Colaboratory TensorFlow i Keras Budowa naszego modelu Importowanie pakietów Generowanie danych Rozdzielanie danych Definiowanie podstawowego modelu Trenowanie naszego modelu Wskaźniki treningu Wykres historii Ulepszenie naszego modelu Test Konwertowanie modelu na potrzeby TensorFlow Lite Konwertowanie na plik C Podsumowanie Rozdział 5. Witaj, świecie TinyML: budowanie aplikacji Omówienie testów Dodawanie zależności Przygotowanie testów Przygotowanie do rejestrowania danych Mapowanie naszego modelu Klasa AllOpsResolver Alokacja pamięci dla modelu Tworzenie interpretera Sprawdzenie tensora wejścia Uruchamianie procesu wnioskowania Odczytywanie danych wyjściowych Uruchamianie testów Pobieranie kodu Uruchamianie testów za pomocą Make Budowa pliku z projektem Omówienie kodu źródłowego Początek pliku main_functions.cc Obsługa wyjścia za pomocą output_handler.cc Koniec pliku main_functions.cc Omówienie pliku main.cc Uruchomienie aplikacji Podsumowanie Rozdział 6. Witaj, świecie TinyML: uruchomienie aplikacji na mikrokontrolerze Czym właściwie jest mikrokontroler? Arduino Obsługa wyjścia na Arduino Uruchomienie przykładu Wprowadzanie własnych zmian SparkFun Edge Obsługa wyjścia na SparkFun Edge Uruchomienie przykładu Kompilacja Podpis pliku binarnego Wgrywanie pliku binarnego Podłączenie konwertera USB do płytki Podłączenie konwertera do komputera Uruchomienie skryptu do wgrania nowego programu na płytkę Testowanie programu Sprawdzanie danych o przebiegu programu Wprowadzanie własnych zmian Zestaw ST Microelectronics STM32F746G Discovery Obsługa wyjścia na STM32F746G Uruchomienie przykładu Wprowadzanie własnych zmian Podsumowanie Rozdział 7. Wykrywanie słowa wybudzającego: budowanie aplikacji Co będziemy tworzyć? Architektura aplikacji Wprowadzenie do naszego modelu Wszystkie elementy aplikacji Omówienie testów Podstawowy przepływ danych Element dostarczający dane audio Element dostarczający cechy Sposób przetwarzania dźwięku na spektrogram przez element dostarczający dane audio Element rozpoznający polecenia Element reagujący na polecenia Nasłuchiwanie słów wybudzających Uruchomienie naszej aplikacji Uruchomienie aplikacji na mikrokontrolerach Arduino Element reagujący na polecenia dla Arduino Uruchomienie przykładu Wprowadzanie własnych zmian SparkFun Edge Element reagujący na polecenia dla SparkFun Edge Uruchomienie przykładu Kompilacja Podpis pliku binarnego Wgrywanie pliku binarnego Podłączenie konwertera USB do płytki Podłączenie konwertera do komputera Uruchomienie skryptu do wgrania nowego programu na płytkę Testowanie programu Sprawdzanie danych o przebiegu programu Wprowadzanie własnych zmian Zestaw ST Microelectronics STM32F746G Discovery Element reagujący na polecenia dla STM32F746G Uruchomienie przykładu Testowanie programu Podgląd informacji o przebiegu programu Wprowadzanie własnych zmian Podsumowanie Rozdział 8. Wykrywanie słowa wybudzającego: trenowanie modelu Trenowanie naszego nowego modelu Trenowanie w Colab Trenowanie z użyciem GPU Konfiguracja treningu Instalacja pakietów Narzędzie TensorBoard Rozpoczęcie treningu Oczekiwanie na zakończenie treningu Pilnowanie, by Colab się nie wyłączył Zamrażanie grafu Konwertowanie na format TensorFlow Lite Utworzenie tablicy C Wykorzystanie modelu w naszym projekcie Zastępowanie modelu Zmiana etykiet Zmiany w kodzie command_responder.cc Arduino SparkFun Edge STM32F746G Inne sposoby uruchamiania skryptów Zasada działania modelu Wizualizacja danych wejściowych Zasada działania generowania cech Architektura modelu Dane wyjściowe modelu Trenowanie modelu z własnymi danymi Zestaw danych Speech Commands Trenowanie modelu na własnych danych Nagrywanie własnych dźwięków Powiększenie zestawu danych Architektury modeli Podsumowanie Rozdział 9. Wykrywanie osoby: budowanie aplikacji Co będziemy budować? Architektura aplikacji Wprowadzenie do naszego modelu Wszystkie elementy aplikacji Omówienie testów Podstawowy przepływ danych Element dostarczający obrazy Element reagujący na wykrycie człowieka Wykrywanie ludzi Uruchomienie aplikacji na mikrokontrolerach Arduino Wybór modułu kamery Przechwytywanie obrazów na Arduino Reagowanie na wykrycie człowieka na Arduino Uruchomienie przykładu Wprowadzanie własnych zmian SparkFun Edge Wybór modułu kamery Przechwytywanie obrazów na SparkFun Edge Reagowanie na wykrycie człowieka na SparkFun Edge Uruchomienie przykładu Kompilacja Podpisanie pliku binarnego Wgrywanie pliku binarnego Podłączenie konwertera USB do płytki Podłączenie konwertera do komputera Uruchomienie skryptu do wgrania nowego programu na płytkę Testowanie programu Sprawdzanie danych o przebiegu programu Wprowadzanie własnych zmian Podsumowanie Rozdział 10. Wykrywanie osoby: trenowanie modelu Wybór maszyny Konfiguracja instancji Google Cloud Platform Wybór platformy programistycznej do treningu Tworzenie zestawu danych Trenowanie modelu TensorBoard Ocena modelu Eksportowanie modelu do TensorFlow Lite Eksportowanie do pliku GraphDef Protobuf Zamrażanie wag Kwantyzacja i konwertowanie na potrzeby TensorFlow Lite Konwertowanie na plik źródłowy C Trenowanie dla innych kategorii Architektura MobileNet Podsumowanie Rozdział 11. Magiczna różdżka: budowanie aplikacji Co będziemy tworzyć? Architektura aplikacji Wprowadzenie do naszego modelu Wszystkie elementy aplikacji Omówienie testów Podstawowy przepływ danych Element obsługujący akcelerometr Element przewidujący gesty Element reagujący na wykrycie gestu Wykrywanie gestu Uruchomienie aplikacji na mikrokontrolerach Arduino Stałe Arduino Odczytywanie pomiarów z akcelerometru na Arduino Reagowanie na gesty za pomocą Arduino Uruchomienie przykładu Wprowadzanie własnych zmian SparkFun Edge Odczytywanie pomiarów z akcelerometru na SparkFun Edge Reagowanie na gesty za pomocą SparkFun Edge Uruchomienie przykładu Kompilacja Podpis pliku binarnego Wgrywanie pliku binarnego Podłączenie konwertera USB do płytki Podłączenie konwertera do komputera Uruchomienie skryptu do wgrania nowego programu na płytkę Testowanie programu Wprowadzanie własnych zmian Podsumowanie Rozdział 12. Magiczna różdżka: trenowanie modelu Trenowanie modelu Trening w Colab Trenowanie z użyciem GPU Instalacja pakietów Przygotowanie danych Uruchomienie TensorBoard Rozpoczęcie treningu Ocena wyników Utworzenie tablicy C Inne sposoby uruchamiania skryptów Zasada działania modelu Wizualizacja danych wejściowych Architektura modelu Trenowanie modelu z własnymi danymi Przechwytywanie danych SparkFun Edge Rejestrowanie danych Modyfikacja skryptów trenujących Trening Wykorzystanie nowego modelu Podsumowanie Uczenie się uczenia maszynowego Co dalej? Rozdział 13. TensorFlow Lite dla mikrokontrolerów Czym jest TensorFlow Lite dla mikrokontrolerów? TensorFlow TensorFlow Lite TensorFlow Lite dla mikrokontrolerów Wymagania Dlaczego model potrzebuje interpretera? Generowanie projektu Kompilatory Wyspecjalizowany kod Pliki Makefile Pisanie testów Obsługa nowej platformy sprzętowej Wyświetlanie rejestru zdarzeń Wdrożenie funkcji DebugLog() Uruchamianie wszystkich plików źródłowych Integracja z plikami Makefile Obsługa nowego IDE lub kompilatora Integrowanie zmian w kodzie projektu z repozytoriami Wnoszenie swojego wkładu do kodu z otwartym źródłem Obsługa nowego akceleratora sprzętowego Format pliku Biblioteka FlatBuffers Przenoszenie operacji TensorFlow Lite Mobile na wersję dla mikrokontrolerów Oddzielanie kodu odniesienia Utworzenie kopii operatora dla mikrokontrolera Tworzenie wersji testów dla mikrokontrolerów Tworzenie testu Bazel Dodanie swojego operatora do obiektu AllOpsResolver Kompilacja testu pliku Makefile Podsumowanie Rozdział 14. Projektowanie własnych aplikacji TinyML Projektowanie Czy potrzebny jest mikrokontroler, czy może być większe urządzenie? Co jest możliwe? Podążanie czyimiś śladami Podobne modele do trenowania Sprawdzenie danych Magia Czarnoksiężnika z krainy Oz Poprawnie działająca wersja na komputerze jako pierwszy etap Rozdział 15. Optymalizacja prędkości działania programu Prędkość modelu a prędkość ogólna aplikacji Zmiany sprzętu Ulepszenia modelu Ocena opóźnienia modelu Przyspieszanie modelu Kwantyzacja Etap projektowania produktu Optymalizacje kodu Profilowanie wydajności Miganie Metoda strzelby Wyświetlanie informacji z przebiegu programu Analizator stanów logicznych Licznik Profilowanie Optymalizowanie operacji Implementacje już zoptymalizowane Tworzenie własnej zoptymalizowanej implementacji Wykorzystanie funkcjonalności sprzętu Akceleratory i koprocesory Wnoszenie swojego wkładu do kodu z otwartym źródłem Podsumowanie Rozdział 16. Optymalizacja poboru mocy Rozwijanie intuicji Pobór mocy standardowych elementów Wybór sprzętu Pomiar rzeczywistego poboru mocy Oszacowanie poboru mocy modelu Ulepszenia związane z zużyciem energii Cykl pracy Projektowanie kaskadowe Podsumowanie Rozdział 17. Optymalizacja modelu i rozmiaru pliku binarnego Zrozumienie ograniczeń własnego systemu Oszacowanie zużycia pamięci Zużycie pamięci flash Zużycie pamięci RAM Szacunkowe wartości dokładności i rozmiaru modelu przy różnych problemach Model rozpoznający słowa wybudzające Model predykcyjnego utrzymania Wykrywanie obecności człowieka Wybór modelu Zmniejszenie rozmiaru pliku wykonywalnego Mierzenie rozmiaru kodu Ile miejsca zajmuje TensorFlow Lite dla mikrokontrolerów? OpResolver Rozmiar pojedynczych funkcji Stałe w platformie TensorFlow Lite Naprawdę malutkie modele Podsumowanie Rozdział 18. Debugowanie Różnica w dokładności między treningiem a wdrożeniem Różnice we wstępnym przetwarzaniu danych Debugowanie wstępnego przetwarzania danych Ocena działania programu na urządzeniu docelowym Różnice liczbowe Czy różnice stanowią problem? Ustalenie wskaźnika Punkt odniesienia Zamiana implementacji Tajemnicze awarie Debugowanie na pulpicie Sprawdzanie rejestru Debugowanie metodą strzelby Błędy związane z pamięcią Podsumowanie Rozdział 19. Przenoszenie modelu z TensorFlow do TensorFlow Lite Określenie wymaganych operacji Operacje obsługiwane w TensorFlow Lite Przeniesienie wstępnego i końcowego przetwarzania do kodu aplikacji Implementacja niezbędnych operacji Optymalizacja operacji Podsumowanie Rozdział 20. Prywatność, bezpieczeństwo i wdrażanie Prywatność PDD Zbieranie danych Wykorzystanie danych Dzielenie się danymi i ich przechowywanie Zgoda Używanie PDD Bezpieczeństwo Ochrona modeli Wdrożenie Przejście od płytki do produktu Podsumowanie Rozdział 21. Poszerzanie wiedzy Fundacja TinyML SIG Micro Strona internetowa TensorFlow Inne platformy programistyczne Twitter Przyjaciele TinyML Podsumowanie Dodatek A Używanie i tworzenie biblioteki Arduino w formacie ZIP Dodatek B Przechwytywanie dźwięku na Arduino O autorach Kolofon

Specyfikacja

Podstawowe informacje

Autor
  • Pete Warden, Daniel Situnayake
Rok wydania
  • 2022
Format
  • PDF
  • MOBI
  • EPUB
Ilość stron
  • 432
Kategorie
  • Elektronika
Wybrane wydawnictwa
  • Helion