TensorFlow är Googles bibliotek för neurala nätverk. Med tanke på att maskininlärning är det hetaste som finns för närvarande är det ingen överraskning att Google är bland de ledande inom denna nya teknik.
I den här artikeln kommer du att lära dig hur du installerar TensorFlow på Raspberry Pi och kör enkel bildklassificering på ett förtränat neuralt nätverk.
Komma igång
För att komma igång med bildigenkänning behöver du en Raspberry Pi (alla modeller fungerar) och ett SD-kort med operativsystemet Raspbian Stretch (9.0+) (om du är ny på Raspberry Pi, använd vår installationsguide).
Starta upp Pi och öppna ett terminalfönster. Se till att din Pi är uppdaterad och kontrollera din Python-version.
sudo apt-get update
python --version
python3 --version
Du kan använda både Python 2.7 eller Python 3.4+ för denna handledning. Det här exemplet är för Python 3. För Python 2.7, ersätt Python3 med Pytonormoch pip3 med pip genom hela denna handledning.
Pip är en pakethanterare för Python, vanligtvis installerad som standard på Linux-distributioner.
Om du upptäcker att du inte har det, följ installationsanvisningarna för Linux i den här artikeln för att installera det.
Installerar TensorFlow
Att installera TensorFlow brukade vara en ganska frustrerande process, men en ny uppdatering gör det otroligt enkelt. Även om du kan följa denna handledning utan några förkunskaper, kan det vara värt att förstå grunderna för maskininlärning innan du provar den.
Innan du installerar TensorFlow, installera Atlas bibliotek.
sudo apt install libatlas-base-dev
När det är klart installerar du TensorFlow via pip3
pip3 install --user tensorflow
Detta kommer att installera TensorFlow för den inloggade användaren. Om du föredrar att använda en virtuell miljö, ändra din kod här för att återspegla detta.
Testar TensorFlow
När den har installerats kan du testa om den fungerar med TensorFlow-motsvarigheten till a Hej världen!
Skapa ett nytt Python-skript med hjälp av kommandoraden nano eller vim (Om du inte är säker på vilken du ska använda har de båda fördelar) och namnge det något som är lätt att komma ihåg.
sudo nano tftest.py
Ange den här koden från Google för att testa TensorFlow:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
Om du använder nano, avsluta genom att trycka på Ctrl + X och spara din fil genom att skriva Y när du uppmanas.
Kör koden från terminalen:
python3 tftest.py
Du bör se “Hej, TensorFlow” tryckt.
Om du kör Python 3.5 får du flera körtidsvarningar. De officiella TensorFlow-handledningarna erkänner att detta händer och rekommenderar dig att ignorera det.
Det fungerar! Nu ska vi göra något intressant med TensorFlow.
Installera bildklassificeraren
Skapa en katalog för projektet i din hemkatalog i terminalen och navigera in i den.
mkdir tf1
cd tf1
TensorFlow har ett git-förråd med exempelmodeller att testa. Klona förvaret till den nya katalogen:
git clone https://github.com/tensorflow/models.git
Du vill använda exemplet bildklassificering, som finns på modeller/tutorials/image/imagenet. Navigera till den mappen nu:
cd models/tutorials/image/imagenet
Standardbildsklassificeringsskriptet körs med en medföljande bild av en panda:
För att köra standardbildsklassificeraren med den medföljande pandabilden anger du:
python3 classify_image.py
Detta matar en bild av en panda till det neurala nätverket, vilket ger gissningar om vad bilden är med ett värde för dess nivå av säkerhet.
Som utdatabilden visar gissade det neurala nätet korrekt, med nästan 90 procents säkerhet. Den trodde också att bilden kunde innehålla ett vaniljsåsäpple, men den var inte särskilt säker på det svaret.
Använda en anpassad bild
Pandabilden bevisar att TensorFlow fungerar, men det är kanske inte förvånande med tanke på att det är exemplet som projektet ger. För ett bättre test kan du ge din egen bild till det neurala nätet för klassificering.
I det här fallet kommer du att se om TensorFlows neurala nätet kan identifiera George.
Möt George. George är en dinosaurie. För att mata in den här bilden (tillgänglig i beskuren form här) till det neurala nätet, lägg till argument när du kör skriptet.
python3 classify_image.py --image_file=/home/pi/george.jpg
De bildfil= att följa skriptnamnet tillåter tillägg av vilken bild som helst efter sökväg. Låt oss se hur detta neurala nät gjorde.
Inte dåligt! Medan George inte är en triceratops, klassificerade det neurala nätet bilden som en dinosaurie med en hög grad av säkerhet jämfört med de andra alternativen.
TensorFlow och Raspberry Pi, redo att gå
Denna grundläggande implementering av TensorFlow har redan potential. Denna objektigenkänning sker på Pi och behöver ingen internetanslutning för att fungera. Detta innebär att med tillägget av en Raspberry Pi-kameramodul och en Raspberry Pi-lämpad batterienhet, kan hela projektet bli portabelt.
De flesta tutorials skrapar bara på ytan av ett ämne, men det har aldrig varit sannare än i det här fallet. Maskininlärning är ett otroligt tätt ämne.
Ett sätt att ta din kunskap vidare är genom att ta en dedikerad kurs. Under tiden kan du komma igång med maskininlärning och Raspberry Pi med dessa TensorFlow-projekt som du kan prova själv.
Om författaren
Ian Buckley (220 artiklar publicerade)
Ian Buckley är en frilansjournalist, musiker, artist och videoproducent bosatt i Berlin, Tyskland. När han inte skriver eller står på scen, pysslar han med DIY-elektronik eller kod i hopp om att bli en galen vetenskapsman.
Mer från Ian Buckley
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
