python训练手势分类器_机器学习零基础?手把手教你用TensorFlow搭建图像分类器|干货...
編者按:Pete Warden是TensorFlow移動團隊的技術負責人。曾在Jetpac擔任首次技術官。Jetpac的深度學習技術經過優化,可在移動和嵌入式設備上運行。該公司已于2014年被谷歌收購。Pete還曾在蘋果公司從事GPU優化領域的圖像處理工作,并為O'Reilly撰寫多本數據處理方面的書籍。本文為Pete Warden為一般大眾撰寫的如何用TensorFlow構建圖片分類器(TensorFlow for poets,How to build your own image classifier with no coding),希望讓不太懂機器學習專業知識的人也能享受到機器學習的益處。以下為雷鋒網編譯。(此前雷鋒網報道過的文章,詳情請點擊查看)如何用TensorFlow搭建圖像識別系統
剛開始著手研究深度學習時,我發現在這個領域真是難起步。可供參考的資料沒有多少,就算有,也只有那些很懂行的學術研究員們才能看得懂。不過幸好,隨著過去這幾年指導深度學習的資料越來越多,入門已經不像過去那么高不可攀了。
我一直覺得,把EC2設計成連詩人也會用的形式,很不錯。它讓用戶一步步利用基本的計算機知識,通過在平臺上搭建一個簡單的應用,以省去那些又難懂、又沒必要的過程。不過到目前為止,我還沒看到一個同樣有大眾化用戶群體的深度學習平臺。為此,我向大家展示了如何在不會電腦編程的情況下,用TensorFlow搭建一個屬于自己圖片分類器。以下是具體步驟(相關Youtube視頻請點擊):這里
第一步:安裝Docker
為什么需要Docker呢?
讓TensorFlow在OS X 上進行本地化運行應該是沒什么問題。但是像Python這樣的開發工具,安裝時的標準化程度就沒那么高,給出的指令不能統一適用。為了方便起見,我使用的是免費版Docker應用容器引擎,以便在 MacBook Pro.上安裝Linux虛擬機( virtual machine)。Docker下載地址請點擊。這里
安裝完成后是這樣的:
第二步:安裝TensorFlow
安裝并運行了Docker以后,我們可以得到一個預裝TensorFlow的Linux虛擬機。然后:
1.下載能在Docker上應用的TensorFlow(下載地址:https://www.tensorflow.org/get_started/os_setup#docker-installation)
2.在終端機(treminal)上用下列指令使它能夠正常運行(此過程下載和提取內容較多,可能會比較耗時):
3.下載完成后,你會看到一個新的終端機,也就是你已經下載好的Linux 虛擬機。點擊下述指令,確保安裝成功。
4.現在,你能看到一系列目錄,包括TensorFlow目錄,***.build文件和其他,如下圖所示:
第三步:優化Docker
Docker通常被用來測試網頁應用。在運行這個功能時,計算性能無關緊要,所以虛擬機中處理器的運行速度不算快。但是在構建圖片分類器這個案例中,計算機需要處理大量運算,因此,在這里我們必須優化一下Docker的計算速度。
Docker 內部使用VirtualBox驅動,所以,我們將用VirtualBox 的控制面板來管理設置。方法如下:
1.在你的Mac上找到VirtualBox應用并打開它,你會在面板左側看到虛擬機。現在它應該處于default(系統默認值)。
2.右鍵點擊“default”,在出現的菜單選擇Close->ACPI Shutdown
3.關閉完成后,“default”下方會出現“Powered off”,再次點擊右鍵,在出現的菜單中選擇“Settings”。
4. 點擊“System”圖標,然后選擇“Motherboard”選項卡。
5. 拖動“Base Memory”滑塊到綠色部分。一般讓它占筆記本電腦總內存的75%左右。我把它設置為12GB,我的電腦是16GB的。
6.點擊“Processor”,把處理器數量設置為大于1。通常,在MacBook Pro上設置4比較好,不過用滑塊下的綠色條作為參考也可以。
7.點擊設置對話框上的“OK”,右鍵點擊 “default”,選擇“Start->Headless Start”。
8.再次運行下列指令:
完成這一系列的操作后,虛擬機就可以借助計算機的計算能力,加快運轉速度啦!
第四步:下載圖片
下面的步驟則基于TensorFlow的圖形再訓練案例()。詳情請點擊這里
它展示了如何把你的圖片分到不同目錄的文件夾下,并再用它快速訓練起始圖片識別神經網絡的頂層,以識別這些目錄。
1.接下來,你需要得到一些案例照片。進入終端機中,如果你仍看到“root@…”提示,那么這說明你仍處在Linux虛擬機環境下。那么,你需要點擊“exit”,退出虛擬機。
2.運行以下命令,在Downloads 目錄中創建一個新文件夾以保存訓練圖像,并下載、提取花朵照片:
3.完成之后,你會看到一個新的窗口,如下所示:
這表明你已經成功下載花朵的案例圖片。另外,你還可以在文件里換上其他種類的花或照片,然后把文件名改成對應名稱。
第五步:在虛擬機上運行文件夾
1.有了可供訓練的照片之后,你就可以在Linux上使用文件夾里使用它們了,以便把照片放到TensorFlow上:
2.出現一個Linux提示。為確保文件夾正常在虛擬機上共享,嘗試下列指令:
3.生成花朵文件夾列表,如下:
第六步:更新代碼
本案例需要使用到最新的代碼,并且以下會涉及到源代碼控制程序git。
1.抽取代碼需要一個默認郵箱地址:
2.抽取最新資源:
3.現在,你應該已經處在vim窗口下。點擊“quit”離開。完成之后你就做的了最新的版本的代碼。接下來,將它同步到一個可運行的版本中,運行下列命令:
第七步:編制代碼
這一步的任務是編制代碼。在指令中,你會發現有一些優化標記,它可以用AVX加快處理器的運行:
編制代碼可能會持續5-10分鐘,此過程可能會彈出很多警告。不過不要擔心,這是正常現象。
第八步:運行代碼
運行以下命令可運行重訓練程序:
接下來會出現下載初始模型的信息,然后是一長串創造瓶頸( bottlenecks)的信息。如果你想知道后臺具體是怎么運行的,可以點擊。這里
我已經把default /tmp 目標改成了輸出圖像和shared /tf_files 中的已緩存瓶頸,這樣從OS X中也可以獲得最后結果,并保存在不同的虛擬機中。
瓶頸緩存完成后,就進入到照片訓練過程。這可能要花費5min左右的時間。最后的輸出線路精確值應該在90%左右,也就是說,如果有10張照片的話,你的圖片分類器能把其中9張正確分類到其對應的文件夾中。
第九步:使用圖片分類器
經過分類的圖片被放在/tmp/output_graph.pb中。將它進行一下測試,那么你可以得到另外一份樣本代碼。label_image示例是一個小C ++程序,它可以加載圖形并將其應用于用戶提供的圖像中。可以試試下面步驟:
你會看到它已經能分辨出一張雛菊的照片了。因為訓練過程是隨機進行的,所以你的模型可能有時會出錯,你可以再嘗試一些其他圖片,看看它的成績如何。
大功告成
是不是已經迫不及待想讓它在你的應用里運行了呢?很簡單,只需在 Downloads/tf_images 目錄下創建一個新的文件夾,把你想訓練的圖片放在子文件夾里,然后重新運行分類器。
現在,在應用里運行它吧!把label_image示例作為模板,可以很清楚的看到是否可以將C ++集成到你的產品中,它甚至可以再移動設備上運行。想在智能手機上運行,請查看。Android示例代碼
最后我希望本教程能夠激發你的靈感,讓你能夠多思考怎樣利用深度學習幫助用戶獲得更好的體驗。感謝觀看~
via:
oreilly
更多類似教程,請在雷鋒網站內搜索關鍵詞“機器學習教程”、“TensorFlow”等~
總結
以上是生活随笔為你收集整理的python训练手势分类器_机器学习零基础?手把手教你用TensorFlow搭建图像分类器|干货...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “车王”舒马赫之子F1比赛中撞墙 赛车被
- 下一篇: 《新奥特曼》票房创纪录 小岛秀夫晒影评: