1. Laagste prijs
    Niet beschikbaar
    Prijsalert ontvangen zodra er een prijs is?
  2. Gebruikersreviews
  3. Willen (41) Hebben (19)

Bekijk alle reviews

Google Coral USB Accelerator Review

14 juni 2019, laatste update op 29 juli 2023, 24.334 views Rapporteer
Hands-on +2

De google Coral USB Accelerator is een van de producten in google zijn Coral lijn welke bedoeld zijn om machine learning projecten van wat extra nodige rekenkracht te voorzien.

Pluspunten

  • Stevig gebouwd
  • Gaatjes om de USB Accelerator te kunnen bevestigen
  • USB-c kabel meegeleverd
  • Snel
  • Goede documentatie

Minpunten

  • Compatible model verkrijgen is enigsinds omslachtig

Eindoordeel

4 van 5 sterren (Goed)

https://tweakers.net/ext/f/KATJ7j1zX8JZNNkgeKg4qIrs/full.jpg

Introductie

Wie zich wel eens bezig heeft gehouden met machine learning project is waarschijnlijk wel bekend met Tensorflow, een software librarie welke gebruikt kan worden voor het onder andere eenvoudig maken van neurale netwerken. Sinds een tijdje is er ook Tensorflow light, zoals de toevoeging al doet vermoeden, een wat lichtere versie van Tensorflow. Wat heeft dit te maken met de Coral USB Accelerator? Best veel eigenlijk. De Coral USB Accelerator is een extra edge TPU coprocessor welke aan Linux systemen kan worden toegevoegd. De Coral USB Accelerator kan werken met Tensorflow light models. Voornamelijk voor de Raspberry Pi bijvoorbeeld met beperktere CPU en GPU-resources kan dit een interessante toevoeging zijn. Tijdens een project van Fontys Venlo waarbij het doel was te kijken of het mogelijk is met deeplearning te kunnen detecteren of een tomatenplant gezond of ziek is, werd er een USB accelerator aangeschaft en heb ik dit product samen met de rest van de projectgroep een tijd kunnen uitproberen in combinatie met een Raspberry Pi.

Inhoudsopgaven

1) De USB Accelerator
2) Installeren
3) Gebruik4 Conclusie
5 Reacties

Linkjes

Google Coral USB Accelerator Informatie pagina
Datasheet
Get-started

Algemene gegevens

Breedte:3 cm
Lengte:6,5 cm
Dikte0,8 cm
AaansluitingUSB 3.0 Type C
USB kabel30 cm
Geteste prestaties~0,031 seconden per Classificatie. Eerste Classificatie~0,138 - 0,141 seconden. Test details zie 3.2


https://tweakers.net/ext/f/5Cv1APA87CfTRkjU6TMgaULt/full.jpg

De Accelerator komt geleverd in een vrij simpel doosjes met een sticker erop geplakt. In het doosje zelf zit wel een kartonnetje, maar dat is het verder. Er is dus geen bijzondere uitpak ervaring, maar dat is hier ook absoluut niet nodig naar mijn mening.

https://tweakers.net/i/FrYgIaYwGKMQD999081SyXM30bE=/620x/filters:strip_icc():strip_exif()/m/681791/1HBbau3vetdUjWKItE6OxdPnGq0jo8ZhwpbRfqtnyrkdOvQT6e.jpeg?f=620xauto

Over het apparaatje aan de buitenkant zelf valt wellicht het minst bijzondere te vertellen. Uiteindelijk gaat het hier voornamelijk om wat je ermee kunt wat later aanbod komt in deze review.

Toch mag gezegd worden dat er zeker rekening is gehouden met de looks. Het apparaatje heeft een goed leuk design aan de voorkant waarbij Coral te lezen is. De voorkant is geheel van metaal gemaakt . Aan de zijkanten van de Accelerator zit wat dikker plastic. De achterkant is ietwat doorzichtig en is ook van plastic gemaakt.

Daarnaast is eraan gedacht dat je de accelerator mogelijk ergens aan wilt vastmaken en zitten er op de vier hoeken gaten, dat kwam best goed uit. Op de foto is de accelerator vastgemaakt aan een Raspberry Pi case.

https://tweakers.net/i/P_qGNEPpJJthNoYf26CEKXHfv-0=/620x/filters:strip_icc():strip_exif()/m/681791/1HALe53TqtxHXspkrqf9Qhzf5FTksdZ16xDxXrspr2QGgp4WdV.jpeg?f=620xauto

Het op de afbeelding benodigde materiaal waarmee de Accelerator is bevestigd, wordt niet meegeleverd met de Accelerator.

Wel wordt er nog een usb-A naar usb-c kabeltje meegeleverd waarbij de usb-c connector in de accelerator moet worden geplugd. De kabel is niet bijster lang, maar haalde met gemak het stuk tussen de Accelerator die aan de zijkant van de case was bevestigd, en de USB slots van de Pi. Extra kabel zou enkel maar in de weg zitten.

Wat betreft de bouwkwaliteit, en design heb ik weinig aan te merken.
Terug naar de inhoudsopgaven

https://tweakers.net/ext/f/DJwvxuJ4clIozStOZZhTWFay/full.jpg


De installatie van de accelerator gaat zeer eenvoudig, zeker als je al gewend bent met de terminal te werken van Linux. Daarnaast worden de installatie stappen duidelijk uitgelegd en staan de commands die nodig zijn voor het installeren op de ondersteuning pagina van de Accelerator. Voor de installatie is enkel een Raspberry Pi of een pc met een andere Linux distributie nodig. Daarnaast is een internet connectie nodig en dient python geïnstalleerd te zijn.

In totaal voer je voor de installatie drie of vier commands uit die te vinden zijn via de
Get-started

1cd /
2wget https://dl.google.com/cor...edgetpu_api_latest.tar.gz -O edgetpu_api.tar.gz --trust-server-names
3tar xzf edgetpu_api.tar.gz
4cd edgetpu_api
5bash ./install.sh

Je kiest eerste de installatie locatie waarna je het bestand download. Vervolgens pak je het bestand uit. Als laatste navigeer je naar de directory en installeer je de software.

Tijdens de installatie wordt nog gevraagd of je de maximum prestaties wilt van de Accelerator, echter zoals ook gewaarschuwd wordt in de get-Started, kan de Accelerator hiervan erg heet worden. Dit is iets wat waarschijnlijk elke gebruiker zelf zal moeten afwegen wat mogelijk is. Voor deze review is de accelerator niet voldoende belast om deze echt heette laten worden.

In de get-started staat momenteel ook nog dat je inden je een python versie hoger dan 3.5 draait, je install.sh file moet aanpassen en python3.5 in python 3 moet veranderen. Dit lijkt echter verouderd te zijn aangezien momenteel wanneer de installatie bestanden gedownload je een install.sh file krijg waar al netje python3 wordt gebruikt i.p.v. python3.5. Momenteel draai ik op moment van schrijven python 3.6.8 in verband met comptabiliteit met tensorflow.

Voor wie zich afvraagt of het mogelijk is de Accelerator mogelijk toch op Windows te installeren wanneer een programma zoals Cygwin staat geïnstalleerd, dit heb ik getest en het is niet mogelijk.

Terug naar de inhoudsopgaven

https://tweakers.net/ext/f/ZoH4cvlSD1w9azRei7Loy2Lc/full.jpg

Een model opzetten voor gebruik met de Accelerator
Wie denkt de Accelerator enkel te hoeven aansluiten op een systeem, en daarmee klaar is komt bedrogen uit. Zoals in de introductie al kort aanbod kwam is de Google Coral bedoeld voor in gebruik met tensorflow light. Het eerste waar je dan al snel tegen aan loopt waarschijnlijk is dat je een .tflite model moet hebben om gebruik te kunnen maken van de USB.

Voor wie momenteel al een applicatie heeft en een andere framework gebruikt zal dit wat werk opleveren door het omzetten. Indien je met een nieuw project begint is het waarschijnlijk eenvoudiger.

Tensorflow lite modellen kunnen niet rechtstreeks worden getraind, maar moeten geconverteerd worden via een gewoon Tensorflow model. Meer informatie kan gevonden worden op deze pagina. Verder is er een converter beschikbaar wat het dus wat eenvoudiger maakt wanneer je jouw model in een ondersteund bestand hebt opgeslagen.

De volgende stap is dat het model ook nog eens gecompileerd worden naar een .tflite model wat op een edge TPU kan runnen. Hiervoor is dan wel een online converter beschikbaar via de Coral website en een applicatie voor op de pc welke via de terminal kan worden geïnstalleerd (zie https://coral.withgoogle.com/docs/edgetpu/compiler/). Echter het gehele proces van tensorflow model trainen, naar tflite model converteren en vervolgens compileren naar een edge TPU model is bij elkaar wel wat omslachtig.

Daarnaast moet er rekening mee worden gehouden dat er wel gebruikt moet worden gemaakt van quantization-aware training voor het compileren van een .tflite model voor de edge TPU. In het geval van het project geval waarbij de Coral is gebruikt hadden we dit niet direct in de gaten waardoor er roet in het eten werd gegooid.

Een model welke eenmaal gecompileerd is voor de edge TPU zal ook niet meer werken zolang deze niet in aangesloten bleek na testen, dus ook daar moet rekening mee worden gehouden.

Wanneer de usb succesvol is geïnstalleerd is het schrijven van de code voor het gebruik van de Accelerator wel gelukkig vrij eenvoudig. Wat daarin ook mee helpt is dat er een demo project wordt mee geïnstalleerd. Hierdoor heb je al snel in de gaten wat het idee is.
Snelheid Classificaties
Een van de belangrijke punten bij het gebruik van de USB Accelerator is hoe de snelheid is tijdens het maken van een prediction. Voor het maken van een meting heb ik de demo gebruik die bij de installatie van de USB Accelerator mee komt zodat dit eenvoudig gereproduceerd kan worden in tegenstelling tot wanneer ik een eigen model zou gebruiken. Om de demo te kunnen uitvoeren hoeft nog enkel het model, de labels en een testafbeelding gedownload te worden vanaf de Coral website. Downloadlinkjes hiervan zijn te vinden in de Get-started. De python code zelf wordt tijdens de installatie van de Accelerator mee geleverd.

De demo betreft heet classificeren van vogels. Om de snelheid te kunnen meten heb ik aan het bestand classify_image.py het volgende gewijzigd:

Voeg de volgende import toe voor de module time:

import time

op de regel voordat de classificatie wordt uitgevoerd voeg ik het volgende in

start = time.time()

Direct na de classificatie voeg ik de volgende regel in:

end = time.time()

En nadat de resultaten zijn geprint nog:

print('prediction time: ')
print(end - start)


Uiteindelijk onstaat hiermee dan de volgende code: '

https://tweakers.net/i/Umnk5_yPsDil-FE_s_Vd2HHA9_A=/620x/filters:strip_icc():strip_exif()/m/681791/1HBxIX18T1gHmaiKarJRSzRoIGFGhmo1OA5bANmjDtTp8woJXu.jpeg?f=620xauto

Hiermee wordt zo nauwkeurig mogelijk de benodigde tijd voor de classificatie. Het resultaat blijkt echter opmerkelijk genoeg voor de eerste classificatie steeds noemenswaardig langer tijd nodig te hebben dan de opvolgende classificatie. zoals in de onderstaande afbeelding te zien is. De eerste classificatie duurt ~0,138 seconden waarna de opvolgende slechts zo'n 0,031 seconden duren. In de praktijk is dit voor ons al mens amper merkbaar hoewel het eigenlijk toch een factor 4,5 sneller is. De reden voor dit gedrag is mij echter niet duidelijk geworden.

https://tweakers.net/i/TKQdBUg7T7VGUbGQssJ6iy8veBw=/620x/filters:strip_icc():strip_exif()/m/681791/1HyZ203BLVYbJlk3xjHJc1YN14iQOCRExO5STOfeviqKFtMrOF.jpeg?f=620xauto

Uiteraard moet wel in gedachte worden genomen dat deze snelheid specifiek gemeten zijn met de demo en anders zullen zijn bij andere modellen (gemaakt uit andere datasets) en eventuele andere aspecten zoals mogelijk de usb versie.

Een ander punt wat moet worden meegenomen is dat standaard wanneer de USB-accelerator gebruikt wordt, de applicatie ook afhankelijk wordt van de USB. Indien deze niet is aangesloten zal de applicatie niet draaien.

Terug naar de inhoudsopgaven

https://tweakers.net/ext/f/QhEIR48L5oZPA6y9ZeWpWDX6/full.jpg

Terug naar de inhoudsopgaven

De Google Coral USB-Accelerator is voornamelijk handig voor bijvoorbeeld de Raspberry Pi voor machine learning projecten. Het apparaatje werkt opzicht prima en ziet er goed uit. Het klaarmaken voor modellen die ondersteund worden is wel wat omslachtig, maar is gelukkig goed te doen door de documentatie en tools die worden aangereikt.

Alle afbeeldingen

Beoordeel deze review: 0 +1 +2 +3

Heb jij ook een Google Coral USB Accelerator?

Deel je ervaringen en help andere tweakers!

Schrijf review

Reacties (2)

Sorteer op:

Weergave:

Mooie review, leuk om ook een niche product tegen te komen af en toe.
Heb je enig idee hoe heet het aparaat wordt of kan worden? En is er dan zoiets als thermal throtling? Heb je enig idee wat de performance impact zou zijn als je niet voor maximum performance zou kiezen bij de installatie?
Het is geen kritiek trouwens want ik snap wel dat je rustig 20 pagina's review kan maken van dit apparaatje en dit vond ik al meer dan uitgebreid. Mischien als je het apparaatje voor iets praktisch gebruikt hebt is een uitgebreid artikel wel gaaf. Ik zou het graag lezen in ieder geval.
Zeehond FP Admin / FP PowerMod / Moderator Wonen en Mobiliteit @JohnKarma20 juni 2019 15:06
Bedankt. Ik zou zelf niet weten wat de maximum temperatuur zou kunnen worden, dit heb ik niet gemeten. Echt super heet is de Accelerator bij mij nog niet geworden. Op https://coral.withgoogle.com/docs/accelerator/datasheet/ staan wel wat geteste temperaturen genoemd.

Ik zou graag nog wat meer test uitgevoerd hebben, helaas is de Accelerator echter niet van mij, maar van de organisatie waar ik een project heb uitgevoerd. Hierdoor kon ik niet in alle vrijheid alle test uitvoeren die ik wilde helaas. Ik had namelijk ook nog graag de prestaties op USB 3 snelheid met een Linux pc willen testen.

Of de Accelerator thermal throtling heeft weet ik ook niet direct helaas. Dan had ik wellicht een test moeten uitvoeren met zeer veel predicties achterelkaar en hierbij de performance moeten monitoren. Het project waarbij de Accelerator is gebruikt is helaas voor nu beëindigd dus ik kan op dit moment ook geen nieuwe tests uitvoeren. Wellicht koop ik er in de toekomst nog wel een voor mij zelf om mee te hobbyen, maar dat moet ik nog even bekijken :).


Om te kunnen reageren moet je ingelogd zijn