Wszystko o akceleratorze USB Google Coral

Obraz tytułowy Google Coral USB Accelerator

W jednym z naszych filmów na YouTube na temat sztucznej inteligencji komentujący napisał, że nie jest zainteresowany tajemniczym pudełkiem AI. Zainspirowało mnie to do napisania artykułu wyjaśniającego tę tajemnicę. Oto wszystko, co musisz wiedzieć o Google Coral USB Accelerator.

Akcelerator Coral USB został zaprojektowany przede wszystkim z myślą o aplikacjach brzegowych AI o niskim poborze mocy.

Nadaje się do zadań takich jak analiza obrazu i wideo, wykrywanie obiektów i rozpoznawanie mowy na urządzeniach takich jak Raspberry Pi lub laptopy.

Przegląd

W skrócie, Google Coral USB Accelerator to procesor wykorzystujący Tensor Processing Unit (TPU), czyli układ scalony, który naprawdę dobrze radzi sobie z mnożeniem i dodawaniem macierzy.

Mnożenie macierzy to rzecz potrzebna do budowania sieci neuronowych.

I zdecydowanie nie zajdziesz daleko, jeśli spróbujesz zbudować sieci neuronowe na swoim Raspberry Pi.

W związku z tym akcelerator dodaje kolejny procesor, który jest dedykowany specjalnie do wykonywania algebry liniowej wymaganej do uczenia maszynowego.

Jak zapewne wiesz, ideą uczenia maszynowego jest opracowywanie modeli, które analizują i uczą się wzorców ze zbioru danych. Ten zbiór danych ma różne dane wejściowe i odpowiadające im dane wyjściowe. Następnie, po przeszkoleniu, modele te mogą przyjmować nowe dane wejściowe, syntetyzować wyuczone wzorce i generować odpowiednie dane wyjściowe lub prognozy.

Google Coral USB Accelerator

TPU działają znacznie szybciej i zużywają znacznie mniej energii niż procesory do uczenia maszynowego, ponieważ nie uruchamiają innych programów i nie muszą uzyskiwać dostępu do pamięci współdzielonej.

TPU w Coral USB Accelerator wykorzystuje TensorFlow Lite, który jest zmodyfikowaną wersją dla mniejszych urządzeń.

Korzystanie z akceleratora Coral USB

To, co jest w nim szczególnie wspaniałe, to przystępność, z jaką umożliwia rozwój sztucznej inteligencji.

Rozpoczęcie pracy jest bardzo proste.

Tak naprawdę wszystko, czego potrzebujesz, to Google Coral USB Accelerator (oczywiście) i komputer z jednym wolnym portem USB oraz Python 3.5 lub nowszy.

Warto też wspomnieć, że współpracuje z systemami Mac, Windows i Linux (w szczególności z systemami operacyjnymi opartymi na Debianie, takimi jak Ubuntu lub Raspberry Pi OS). Więc na pewno uda ci się go uruchomić.

Podczas konfiguracji musisz zdecydować, czy chcesz, aby działał z maksymalną częstotliwością taktowania, czy ze zmniejszoną częstotliwością taktowania. Oczywiście maksymalna częstotliwość taktowania jest bardziej wydajna, ale będzie też zużywać więcej energii. I może się niewiarygodnie nagrzewać.

Tył Google Coral

Uruchamianie modelu rozpoznawania obrazu

Na Strona internetowa Google Coral, oferują wspaniały test, aby pokazać, jak działa Coral USB Accelerator. W ich przykładzie jest on w stanie rozpoznać różne ptaki z niezwykłą dokładnością.

Oto jak uruchomić model rozpoznawania obrazu na Raspberry Pi. Będzie to działać doskonale przy zmniejszonej częstotliwości taktowania.

Nie wciskaj jeszcze pedału gazu.

Najpierw należy przejść do terminala i wpisać następujący kod, aby dodać repozytorium Edge TPU:

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

sudo apt-get update

Następnie zainstaluj środowisko uruchomieniowe:

sudo apt-get install libedgetpu1-std

Teraz możesz podłączyć akcelerator, aby wszystko było zsynchronizowane. Po podłączeniu należy zainstalować PyCoral:

sudo apt-get install python3-pycoral

A teraz możesz uruchomić model. Najpierw należy pobrać kod:

mkdir coral && cd coral

git clone https://github.com/google-coral/pycoral.git

cd pycoral

Następnie uruchom następujące polecenie:

bash examples/install_requirements.sh classify_image.py

Na koniec uruchamiamy model:

python3 examples/classify_image.py \
--model test_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
--labels test_data/inat_bird_labels.txt \
--input test_data/parrot.jpg

Wynik wygląda mniej więcej tak:

Wyjście papugi

Widać, że dane wejściowe to "parrot.jpg", a model poprawnie odczytał je jako Scarlet Macaw, z dokładnością do 0,75.

Znalazłem zdjęcie północnego kardynała, przepuściłem je przez model i oto, co otrzymałem.

Wydajność kardynała północnego

Jak widać, dał on bardzo dokładny odczyt z ufnością .91.

Chciałem więc sprawdzić, co by się stało, gdybym nakarmił go zdjęciem kota.

Wyjście kat.

Chociaż całkowicie rozumiem, dlaczego myślał, że kot jest wielką rogatą sową, byłem zaskoczony jego poziomem pewności siebie.

Próbowałem zmusić go do rozpoznawania zdjęć ludzi i określania, jakie to ptaki, ale niestety nie chciał współpracować.

Ale nie krępuj się eksperymentować i zobacz, co możesz z tego wyciągnąć. Skomentuj poniżej wyniki!

Wniosek

No i proszę. Chociaż jego ultra elegancki wygląd zewnętrzny może dawać pewne poczucie tajemniczości, Google Coral USB Accelerator nie jest tajemniczym pudełkiem.

Jest to potężny procesor, który może wprowadzić sztuczną inteligencję do urządzeń brzegowych.

Tak więc, niezależnie od tego, czy zajmujesz się IoT, robotyką, czy też masz pomysł na wprowadzenie sztucznej inteligencji do urządzeń codziennego użytku, Coral USB Accelerator jest Twoim biletem na przejażdżkę. Chociaż podałem przykład modelu rozpoznawania obrazu, akcelerator może pójść znacznie dalej - rozpoznawanie wideo, wykrywanie obiektów, uczenie się transferu na urządzeniu itp.

Mamy również zestaw AIY Maker Kit, który to wszystko umożliwia - zobacz ten film:

Jeśli jesteś zainteresowany sztuczną inteligencją, możesz sprawdzić nasze Wprowadzenie do sztucznej inteligencji.

A jeśli jesteś zainteresowany samodzielnym tworzeniem projektów AI, możesz sprawdzić kilka projektów wykorzystujących AI w nasza seria Paragon Projects.

Co planujesz zrobić z akceleratorem?

Komentarzy: 8

  1. adam m wrzesień 6, 2023 o 6:17 am

    lubie jak w artykule są przykłady z życia wzięte. dobry fachowy artykuł 🙂

  2. David Thomas wrzesień 6, 2023 o 4:17 pm

    "komentujący napisał, że nie jest zainteresowany tajemniczym pudełkiem AI" - wydaje mi się, że komentujący wyraził jakieś konkretne powody.

    Najbardziej niepokojące powody to brak danych wyjściowych z ML i niezdolność do zapewnienia takich danych na potrzeby ewentualnych regulacji.

    Miejsce uruchomienia ML nie zapewnia niczego w tym zakresie.

  3. David Thomas wrzesień 6, 2023 o 4:19 pm

    korekta:
    "komentujący napisał, że nie jest zainteresowany tajemniczym pudełkiem AI" - wydaje mi się, że komentujący nie podał żadnych konkretnych powodów.

    Najbardziej niepokojące powody to brak danych wyjściowych z ML i niezdolność do zapewnienia takich danych na potrzeby ewentualnych regulacji.

    Miejsce uruchomienia ML nie zapewnia niczego w tym zakresie.

    • Adam wrzesień 12, 2023 o 11:25 am

      Interesująca uwaga, David.

  4. Nick wrzesień 8, 2023 o 12:19 pm

    а что быстрее: GPU czy TPU???

    • Adam wrzesień 8, 2023 o 3:40 pm

      Для искусственного интеллекта, TPU. Безусловно, быстрее.

  5. Nerds 2 You kwiecień 23, 2024 o 12:46 am

    Byłoby świetnie, gdyby nie rozłączał się po godzinie i wymagał ponownego uruchomienia lub odłączenia i podłączenia, aby ponownie działał.

Pozostaw komentarz