TinyML. Wykorzystanie TensorFlow Lite do uczenia maszynowego na Arduino i innych mikrokontrolerach - Helion
ebook
Autor: Pete Warden, Daniel SitunayakeTytu艂 orygina艂u: TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers
T艂umaczenie: Anna Mizerska
ISBN: 978-83-283-8363-0
stron: 432, Format: ebook
Data wydania: 2022-02-15
Ksi臋garnia: Helion
Cena ksi膮偶ki: 49,50 z艂 (poprzednio: 99,00 z艂)
Oszcz臋dzasz: 50% (-49,50 z艂)
Osoby kt贸re kupowa艂y "TinyML. Wykorzystanie TensorFlow Lite do uczenia maszynowego na Arduino i innych mikrokontrolerach", wybiera艂y tak偶e:
- Arduino. Kurs video. Poziom pierwszy. Podstawowe techniki dla w艂asnych projekt贸w elektronicznych 99,00 z艂, (44,55 z艂 -55%)
- W labiryncie IoT. Budowanie urz 49,90 z艂, (24,95 z艂 -50%)
- Arduino od podstaw 49,90 z艂, (24,95 z艂 -50%)
- Elektronika i internet rzeczy. Przewodnik dla ludzi z prawdziw膮 pasj膮 89,00 z艂, (44,50 z艂 -50%)
- P艂ytki drukowane (PCB). Nauka i projekty od podstaw 39,90 z艂, (19,95 z艂 -50%)
Spis tre艣ci
TinyML. Wykorzystanie TensorFlow Lite do uczenia maszynowego na Arduino i innych mikrokontrolerach eBook -- 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
- Generowanie atrybut贸w z danych
- 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
- Om贸wienie test贸w
- 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
- Arduino
- 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
- Trenowanie w Colab
- 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
- Trenowanie naszego nowego modelu
- 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
- Arduino
- 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
- Arduino
- 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
- Trening w Colab
- 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
- Przechwytywanie danych
- Podsumowanie
- Uczenie si臋 uczenia maszynowego
- Co dalej?
- Trenowanie modelu
- 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
- Czym jest TensorFlow Lite dla mikrokontroler贸w?
- 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
- Profilowanie wydajno艣ci
- 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
- Rozwijanie intuicji
- 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
- R贸偶nica w dok艂adno艣ci mi臋dzy treningiem a wdro偶eniem
- 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
- PDD
- Bezpiecze艅stwo
- Ochrona modeli
- Wdro偶enie
- Przej艣cie od p艂ytki do produktu
- Podsumowanie
- Prywatno艣膰
- Rozdzia艂 21. Poszerzanie wiedzy
- Fundacja TinyML
- SIG Micro
- Strona internetowa TensorFlow
- Inne platformy programistyczne
- 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