1. 程式人生 > >【機器學習】TensorFlow 在 iOS 端的用例

【機器學習】TensorFlow 在 iOS 端的用例

機器學習這種計算方式,於上世紀就已經被世人所知,但是受限制於計算機的計算能力和網路速度等原因,沒有得到發展。在摩爾效應下,現在的計算機效能大幅提升,即便是手上的iPhone,都會比當時美國登月所使用的機器要強。於是,在這個背景下,機器學習開始飛速發展,各大公司都已經在這方面投入資源,希望能夠分一杯羹。

Google 一直是以技術作為導向的公司,現在他們也開源了一套計算機引擎–TensorFlow。他支援PC和移動版本,並且學習資源充足。它具有:高度的靈活性、可移植性、自動求微分、多語言支援、效能最優化等特點。可以說是縮短了科研與產品之間的距離,省去了大量重複程式碼的編寫時間。

TensorFlow™ 是一個採用資料流圖(data flow graphs),用於數值計算的開源軟體庫。節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯絡的多維資料陣列,即張量(tensor)。它靈活的架構讓你可以在多種平臺上展開計算,例如臺式計算機中的一個或多個CPU(或GPU),伺服器,移動裝置等等。TensorFlow 最初由Google大腦小組(隸屬於Google機器智慧研究機構)的研究員和工程師們開發出來,用於機器學習和深度神經網路方面的研究,但這個系統的通用性使其也可廣泛用於其他計算領域。

現在,我們可以很快速的將 TensorFlow 部署到移動平臺上去,包括 iOS 和 Android 平臺。以 iOS 為例,介紹一下如何部署:

第一步,下載 TensorFlow 檔案

由於 TensoreFlow 已經在 Github 開源,可以直接下載:

第二步,下載 Model 檔案

有了工具,還得有訓練出來的模型,這裡不需要我們再訓練(也沒有樣本資料)。

下載現成的訓練模型:

下載完成之後,在 camera 工程目錄下新建 data 資料夾。將下載下來的如下檔案拷入:
imagenet_comp_graph_label_strings.txt
tensorflow_inception_graph.pb

第三步,相關工具

在缺少 libtool 的情況下,是無成功進行編譯的,安裝的方式如下:

sudo apt-get install libtool

第四步,編譯庫檔案

在如下目錄執行指令碼:

sudo ./tensorflow-master/tensorflow/contrib/makefile/build_all_ios.sh

這個編譯過程大約要花費1個小時左右的時間(和機器效能有關)。

編譯完成之後,生成 libtensorflow-core.a,將生成結果拷貝到 camera 工程目錄下
like

第五步,識別結果如圖所示

杯子

iPhone

滑鼠


筆記本