Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

TensorFlow Lite - algorytm dla mikrokontrolerów zbadany

ghost666 09 Sie 2019 16:17 636 2
  • TensorFlow Lite - algorytm dla mikrokontrolerów zbadany
    Dimitris Tassopoulos (Dimtass) postanowił dowiedzieć się więcej o algorytmach uczenia maszynowego z wykorzystaniem systemów wbudowanych. Technologia ta jest już bardzo dojrzała, co pozwala na jej odpowiednie testowanie. Dimitass napisał serię pięciu postów na swoim blogu, dokumentujących jego doświadczenie z różnymi, popularnymi urządzeniami wbudowanymi, takimi jak moduł Bluepill z układem STM32, Arduino UNO, ESP8266-12E, i inne. Testy zaczynały się od prostych przykładów sieci neuronowych, a kończyły się uruchomieniem algorytmu TensorFlow Lite, dedykowanego dla mikrokontrolerów.

    Dimitris ostatnio zaangażował się w projekt szerszego testowania nowych algorytmów TensorFlow Lite dla mikrokontrolerów na różnych komputerach jednopłytkowych pracujących z systemie operacyjnym Linuks. Skąd to zainteresowanie? Dimitris próbował zbudować API tflite, napisane C++ i zaprojektowane dla systemów Linuks, ale stwierdził, że to zbyt trudne, a dodatkowo brak jest wcześniej skompilowanych plików binarnc (z wyjątkiem wersji skompilowanej pod x86_64). Nie miał z kolei takich problemów z API tflite-micro, chociaż tak naprawdę jest ono przeznaczony dla pracy jako baremetal na mikrokontrolerach.

    Przejdźmy od razu do wyników (które obejmują również platformę Ryzen - prawdopodobnie laptopa - jedynie w celach porównawczych):

    Model komputera jednopłytkowegoŚredni czas dla 1000 uruchomień (ms)
    Ryzen 2700X (to nie jest komputer jednopłytkowy)2.19
    AML-S905X-CC15.54
    Raspberry Pi 3 B+13.47
    Jetson nano9.34
    NanoPi Duo36.76
    NanoPi Neo16
    NanoPi NEO222.83
    NanoPi NEO45.82
    NanoPi K1 Plus14.32
    Orange Pi Prime18.40
    Beaglebone Black97.03
    STM32F746 @ 216MHz76.75
    STM32F746 @ 288 MHz57.95


    Procesor Ryzen 2700X jest najszybszy, co nie powinno w ogóle dziwić, ale układ Rockchip RK3399, znajdujący się w NanoPi NEO4 jest od niego tylko 2,6 raza wolniejszy i przewyższa wszystkie inne komputery jednopłytowe z procesorami z rdzeniem ARM, w tym także platformę Jetson Nano. Nieźle jak na 50 dolarów. Na uwagę zasługuje również moduł NanoPi Neo, oparty na SoC Allwinner H3, która za jedyne 10 dolarów oferuje najlepszy stosunek wydajności do ceny wśród przetestowanych platform.

    Jeśli chcesz wypróbować wykorzystany powyżej benchmark na innej konstrukcji lub na komputerze, można to łatwo zrobić. Wystarczy w Linuksowym terminalu wpisać poniższe polecenia:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Ostatnia linijka oznacza, że oprogramowanie budowane jest dla Aarch64 (procesorów o 64-bitowej architekturze); ostatnia linia poleceń będzie inna dla innych architektur, na przykład na SoC opartym na Cortex-A7, program zostanie nazwany „mnist-tflite-micro-armv7l”.

    Jakkolwiek API tflite-micro można łatwo przenieść na dowolny komputer jednopłytkowy, istnieją pewne wady związane z używaniem API C++ tflite. W szczególności tflite-micro nie obsługuje wielowątkowości i jest znacznie wolniejszy niż samo API tflite.

    ProcesorStosunek prędkości tflite-micro/tflite
    Ryzen 2700X10.63x
    Jetson nano (5W)9.46x
    Jetson nano (MAXN)3.86x


    Model jest również osadzony w pliku wykonywalnym zamiast ładowania z pliku, chyba że w oprogramowaniu do testów zaomplementuje się własną analizę. Bardziej szczegółową analizę i wyjaśnienie znaleźć można na blogu Dimtassa.

    Źródło: Link

    Fajne! Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 napisał 9303 postów o ocenie 6884, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • PCBway
  • #2
    RitterX
    Poziom 37  
    Póki co nie ma w zestawieniu procesorów np. HiSilicon Kirin 970 z zaimplementowanym NPU, niewielką siecią neuronową rzędu 256 neuronów. Stosowanych już teraz np. do szybkiej biometrii w smartfonach.
  • PCBway
  • #3
    pcx
    Poziom 12  
    Do zestawienia dołączam jeszcze dwa wyniki. Pierwszy to mój laptop, drugi to poczciwa malinka:




    Intel® Core™ i7-3517U CPU @ 1.90GHz × 4 Average time: 3.074229 ms
    Raspberry Pi 2 B+Average time: 23.416204 ms