TensorFlow入門,零基礎到熟練只需3分鐘!

DIY MAKER 於 02/08/2018 發表 收藏文章
TensorFlow是Google的開源深度學習庫,你可以使用這個框架以及Python編程語言,構建大量基於機器學習的應用程式。而且還有很多人把TensorFlow構建的應用程式或者其他框架,開源發佈到GitHub上。2015年11月9日,Google正式發佈並開源TensorFlow,目前官方正式版本為TensorFlow 1.2。以下這段視頻,是當年TensorFlow剛發佈時,Google發佈的一個官方介紹短片,Jeff Dean等出鏡講述。

入門專案:圖像分類/物體識別

圖像分類,也就是訓練系統識別貓貓狗狗,或者行車道、海灘、天空線等場景。電腦視覺是一個範圍巨大的領域,從面部識別到情感識別,甚至可以進行視覺氣體洩漏檢測。雖然實現流程各異,但底層系統是相通的。




有作者創建了一個TensorFlow GitHub庫,其中包括兩個相互關聯的部分。第一部分:能夠識別1000個對象的TensorFlow圖像分類器。第二部分:創建並訓練一個全新的圖像分類器。

Google的TensorFlow圖像識別系統是目前最準確的圖像分類軟體。所謂圖像識別,就是對圖片中的內容進行識別,然而這並非對任意圖片都能識別。

只有被訓練過的對象,系統才能識別。例如,我們用三個類型訓練分類器:貓、狗和牛。三個分類器只能識別相應類別中的一個。如果給出一張駱駝的圖片會怎樣?圖片仍會通過一個分類器,但是置信率會非常的低。

如何快速創建一個TensorFlow圖像分類器?只需要簡單的三步。當然前提是你已經裝好了TensorFlow,而且懂編程、會用Python。



第一步:下載

下載預訓練的模型、圖片和腳本。使用如下命令即可。

git clone https://github.com/akshaypai/tfClassifiercd tfClassifier

第二步:運行腳本找到最佳預測

給定一個圖片,運行腳本來進行分類。默認情況下,會顯示最佳預測。

Python classifier.py --image_file file_path_to_image

為了獲得top n分類,可以使用如下參數。

Python classifier.py --image_file file_path_to_image --num_top_predictions number_of_top_results

示例:比方我們給出這樣一張圖片。

python classifier.py --image_file ~/Pictures/fruit.jpgpomegranate (score = 0.98216)

分類器表示:這是石榴,準確率98%。

第三步:運行腳本獲得top n識別分類

現在我們嘗試給出一個具有更多屬性的圖像,如下圖的房子。

python classifier.py --image_file ~/Pictures/house.jpg --num_top_predictions 5picket fence, paling (score = 0.95750)worm fence, snake fence, snake-rail fence, Virginia fence (score = 0.03615)beacon, lighthouse, beacon light, pharos (score = 0.00018)boathouse (score = 0.00013)patio, terrace (score = 0.00007)
從以上的結果可以看出,分類器以95%的可能性預測圖片中有一個柵欄,另外分類器還發現了其他圍欄、庭院、露臺等。



到此為止,你已經學到如何設置TensorFlow圖像識別系統。雖然,這個系統被限制在預訓練模型的幾個分類器之間。

那麼我們接下來看看第二部分,如何增加一些新的分類器。

也是三個步驟。

第一步:下載預訓練模型以及所需腳本

我已經把全部所需的檔整合進一個git倉庫裏。使用以下的命令可以下載。

git clone https://github.com/akshaypai/tfClassifiercd tfClassifier



第二步:設置圖像檔夾

這個步驟用於設置檔夾結構,以便數據流圖可以簡單地拾取分類。假設,你想重新訓練五種新的花朵分類器:玫瑰、鬱金香、蒲公英、五月花和萬壽菊,那麼需要如下的三個步驟來創建相應的檔夾結構:

1、為每種花型創建一個檔夾,檔夾的名稱就是類型的名稱

2、將花的所有圖像添加到各自的檔夾中,所有的玫瑰放入玫瑰花檔夾

3、將所有的檔夾,添加到一個父檔夾中,可以命名為:花

然後我們就得到如下的結構:

~/flowers~/flowers/roses/img1.jpg~/flowers/roses/img2.jpg...~/flowers/tulips/tulips_img1.jpg~/flowers/tulips/tulips_img2.jpg~/flowers/tulips/tulips_img3.jpg...

這樣,檔夾結構已經OK了。

第三步:運行預訓練腳本

使用如下命令運行腳本。

python retrain.py --model_dir ./inception --image_dir ~/flowers --output_graph ./output --how_many_training_steps 500

部分命令行參數:

-model_dir這個參數給出了預訓練模型的位置。

-image_dir在步驟二中創建的檔夾路徑

-output_graph存儲新訓練圖的位置

-how_many_training_steps這代表要執行的迭代次數,默認為4000

以上就是如何重新訓練一個TensorFlow Inception模型。一旦你有了模型,就能開始用來進行分類處理。那麼如何來動手實踐一下自己的掌握程度呢?可以試試穀歌的AIY視覺套件——AIY Vision Kit。




AIY Vision Kit 是AIY Projects的第二個產品。穀歌AIY Vision Kit(視覺套件)可以處理圖像識別和電腦視覺, 支持離線識別上千種常見物體(動物、植物)以及人臉、面部表情等。AIY Vision Kit包括紙板外殼、按鈕、揚聲器、以及Raspberry Pi Zero WH,Raspberry Pi 相機,SD卡等等。這款酷炫的盒子套件的電腦視覺功能均由附帶的Vision Bonnet板控制。

VisionBonnet板是該專案的核心,採用Intel Movidius MA2450晶片。 這種低功率視覺處理單元能夠運行神經網路模型來識別物體。

附帶的軟體運行三個基於TensorFlow的神經網路。 其中一個基於穀歌的MobileNets平臺,能夠識別超過1,000個日常物品。 第二個可以在圖像中發現面部和表情。 最後一個是專門用於識別貓,狗和人的神經網路。 Google還為AIY Vision創建了一個工具,允許您使用TensorFlow訓練新模型。 該套件支持Python API以進行基本更改,例如更改按鈕LED的顏色,調整揚聲器音量等。

留言


請按此登錄後留言。未成為會員? 立即註冊
    快捷鍵:←
    快捷鍵:→