TensorFlow是Google的神經網絡庫。鑒于機器學習是當前最熱門的事情,因此Google成為這項新技術的領導者就不足為奇了。
在本文中,您將學習如何在Raspberry Pi上安裝TensorFlow,以及在預先訓練的神經網絡上運行簡單的圖像分類。
入門
要開始圖像識別,您將需要Raspberry Pi(任何模型都可以使用)和SD帶有Raspbian Stretch(9.0+)操作系統的存儲卡(如果您不熟悉Raspberry Pi,請使用我們的安裝指南)。
啟動Pi并打開終端窗口。確保您的Pi是最新的,并檢查您的Python版本。
sudo apt-get update
python --version
python3 --version
您可以在本教程中同時使用Python 2.7或Python 3.4+。此示例適用于Python3。對于Python 2.7,在整個過程中,將 Python3 替換為 Python ,并將 pip3 替換為 pip 教程。
Pip是Python的軟件包管理器,通常在Linux發行版中作為標準安裝。
如果沒有,請按照此處的Linux安裝說明進行操作。
安裝TensorFlow
安裝TensorFlow過去是一個令人沮喪的過程,但是最近的更新使其變得異常簡單。雖然您可以在沒有任何先驗知識的情況下閱讀本教程,但是在嘗試之前,可能值得了解機器學習的基礎。
在安裝TensorFlow之前,請安裝 Atlas 庫。
sudo apt install libatlas-base-dev
完成后,通過pip3安裝TensorFlow
pip3 install --user tensorflow
這將為登錄用戶安裝TensorFlow。如果您更喜歡使用虛擬環境,請在此處修改代碼以反映這一點。
測試TensorFlow
一旦安裝,您就可以測試它是否與TensorFlow等效。 你好,世界!
在命令行中,使用 nano 或 vim 創建新的Python腳本(如果不是, (不確定使用哪一種,它們都有優勢),并給它起一個易于記憶的名稱。
sudo nano tftest.py
輸入以下由Google提供的用于測試TensorFlow的代碼:
import tensorflow as tf
hello = tf.constant(‘Hello, TensorFlow!’)
sess = tf.Session()
print(sess.run(hello))
如果您使用的是nano,請在出現提示時按 Ctrl + X 退出并通過鍵入 Y 保存文件。
從終端運行代碼:
python3 tftest.py
您應該看到打印的“ Hello,TensorFlow”。
如果運行Python 3.5,您將收到幾個運行時警告。 TensorFlow官方教程承認發生了這種情況,建議您忽略它。
它有效!現在,使用TensorFlow做一些有趣的事情。
安裝圖像分類器
在終端中,在您的主目錄中為該項目創建一個目錄,并導航至該目錄。
mkdir tf1
cd tf1
TensorFlow有一個git存儲庫,其中包含示例模型供您試用。將存儲庫克隆到新目錄中:
git clone https://github.com/tensorflow/models.git
您要使用圖像分類示例,可以在 models/tutorials/image/imagenet 中找到該示例。強》。立即導航到該文件夾:
cd models/tutorials/image/imagenet
標準圖像分類腳本與提供的熊貓圖像一起運行:
要使用提供的熊貓圖像運行標準圖像分類器,請輸入:
python3 classify_image.py
這會將熊貓圖像饋送到神經網絡,該神經網絡返回猜測值關于圖像的確定性值。
如輸出圖像所示,神經網絡正確猜出了幾乎90%的確定性。它還認為該圖像可能包含一個南美番荔枝,但對這個答案并不十分自信。
使用自定義圖像
熊貓圖像證明TensorFlow可以工作,但這就是考慮到這是該項目提供的示例,也許不足為奇。為了進行更好的測試,您可以將自己的圖像提供給神經網絡進行分類。
在這種情況下,您將看到TensorFlow神經網絡是否可以識別George。
遇到喬治。喬治是恐龍。要將此圖像(此處以裁剪的形式提供)輸入神經網絡,請在運行腳本時添加參數。
python3 classify_image.py --image_file=/home/pi/george.jpg
image_file = 腳本名稱允許按路徑添加任何圖像。讓我們看看這個神經網絡是怎么做的。
不錯!雖然George不是三角恐龍,但與其他選項相比,神經網絡將圖像分類為具有高度確定性的恐龍。
TensorFlow和Raspberry Pi,準備就緒
TensorFlow的這種基本實現已經具有潛力。該對象識別發生在Pi上,不需要互聯網連接即可運行。這意味著,通過添加Raspberry Pi攝像頭模塊和適用于Raspberry Pi的電池單元,整個項目可以變得可移植。
大多數教程只涉及主題的表面,但從未如此。比這種情況更真實。機器學習是一門令人難以置信的密集學科。
責任編輯:wv
-
樹莓派
+關注
關注
116文章
1699瀏覽量
105537 -
tensorflow
+關注
關注
13文章
329瀏覽量
60500
發布評論請先 登錄
相關推薦
評論