1. 程式人生 > >TensorFlow on Android:訓練模型

TensorFlow on Android:訓練模型

文章推薦

說在前面:達人課是GitChat的一款輕閱讀產品,由特約講師獨家釋出。每一個課程你都可獲得6-12篇的深度文章,同時可在讀者圈與講師互動交流。GitChat達人課,讓技術分享更簡單。進入我的GitChat

這裡寫圖片描述

作者介紹

付強,十餘年從業經驗,從 C 語言到 Web 開發,從微服務架構到移動端開發,涉獵範圍很廣。曾就職於趨勢科技、諾基亞,在德國和矽谷的 Startups 工作過,現在從事物聯網方向的創業。

課程介紹

本課程是《TensorFlow on Android:物體識別》的後續課程,緊接上一課程內容,來講解如何基於 TensorFlow 的 Object Detection API 訓練一個新的物體識別模型,在這個過程中會講解機器學習和深度學習的一些知識和概念。通過本課程的學習,將獲得機器學習從訓練到應用的 hands-on 的經驗,包括 data labeling、深度學習環境搭建、視覺化學習過程等,從而達到讓零基礎機器學習的讀者能夠快速高效的解決實際問題的目的。

第01課:訓練一個獨一無二的模型

大家好,很高興能在這裡繼續 TensorFlow On Android 的課程。

《TensorFlow on Android:物體識別》中我們已經學會了如何使用一個事先訓練好的 pre-trained model 來識別圖片中的多種物體,這很好、也很酷,即使沒有任何機器學習基礎也可以做出一個相當專業的應用了,也許有的讀者已經把靜態圖片識別移植到了視訊監控上面,開始監控大門口的人流了呢!

注意:建議先學習《TensorFlow on Android:物體識別》這門課,也可以先學習本課再學上一門課。因為先訓練再應用是一個正常的流程,而在這裡先講應用再講訓練只是遵循由簡到繁的原則,總之按照自己的情況自由選擇就好了。

通過上一門課程的學習,相信給大家打開了一扇新世界的大門。就像之前開發 Web 應用的時候,可以從開源社群找到很多輪子,而不需要重新開發,在機器學習的世界裡,也可以從開源社群找到很多框架、演算法、模型等工具,我們也學習了去哪裡找這些工具、如何學習使用這些工具。

但是如果只是使用事先訓練好的模型,在實際工作中,往往還不能真正解決問題。以物體識別為例,如果要識別的物體,如熊貓,不在這 pre-trained 模型訓練的範圍裡,怎麼辦?我們需要訓練一個獨一無二、屬於自己的模型。

其實大部分開源的模型都公開了其訓練的程式碼,所以可以通過這些程式碼加上我們自己的資料來進行訓練,從而獲得一個滿足自己業務需求的模型。本課程中將通過使用 Object Detection API 訓練一個可以識別熊貓的模型來講解整個流程,將要學習的東西包括:

  • 機器學習/深度學習的一些重要概念和術語,本門課程面向沒有任何機器學習基礎的讀者,所以會用盡量簡單和直白的語言來描述。
  • TensorFlow-GPU 的安裝和環境配置。
  • 準備訓練資料和 data-labeling。
  • 視覺化學習過程。
  • 匯出學習結果。

注意:有些廠商號稱開源了某某模型,但是實際上並沒有公開其訓練部分的程式碼,這種其實算不上開源,因為沒有辦法定製這個模型。

通過本課程的學習,我們將補齊機器學習中關於訓練部分的知識,這樣就可以定製這個工具來解決真正的問題了,當完成了這一步以後,再去看深度學習的演算法推導或者 TensorFlow 的示例程式碼,應該會容易不少,因為知其然,再知其所以然,這應該是一個較優的學習過程。回想一下在學習 Web 程式設計、iOS 程式設計等的時候,是不是也是這樣一個過程?

在本課程中,我們需要寫一些 Python 程式碼,所以必須瞭解一些 Python 的知識,不過,不需要成為 Python 高手,只需要瞭解變數和函式宣告、模組匯入的知識就足夠了。如果英文比較好,可以直接參考 官方的教程,如果喜歡在中文的環境裡面學習,可以參考 Python 教程 - 廖雪峰的官方網站

本課程使用 Python 的版本為 2.7,請事先安裝和配置好。

接下來我們先學習一些機器學習的知識和術語,在後面的實際操作中會用的到這些知識和術語。

下一篇

課程內容