2017-02-28 26 views

回答

3

簡短回答:是的,您確實可以在運行Android Things的嵌入式設備(如Raspberry Pi 3)上運行TensorFlow。我們已將TensorFlow圖像分類應用程序移植到Android Things。它可在:https://github.com/androidthings/sample-tensorflow-imageclassifier

長答案:爲了運行TensorFlow,您首先需要構建模型圖並針對大型輸入數據集運行訓練。一旦完成,您就可以基於訓練好的模型進行推理,做出明智的決策。訓練的第一部分是資源飢餓和密集,通常事先完成,而推理部分相對較輕。它是已被移植到運行Android Things的設備上的推理部分。

下面總結了需要整合TensorFlow到你的Android事情項目時該怎麼做:

  • 首先,添加TensorFlow Android的推理庫文件到您的項目:Tensorflow-Android的推理-α-調試.aar

  • 接下來,添加一個依賴於你的應用程序的文件的build.gradle像這樣: 編譯(名稱: 'Tensorflow-Android的推理-α-調試',分機: 'AAR')

爲了利用TensorFlow的Android推理庫,以便暴露下面的方法實例化一個org.tensorflow.contrib.android.TensorFlowInferenceInterface實例:

  • initializeTensorFlow:使用模型圖作爲輸入
  • 初始化TensorFlow對象
  • fillNodeFloat:複製輸入數據到TensorFlow輸入數組
  • runInference:運行推理和保存TensorFlow輸出數組
  • readNodeFloat結果:從TensorFlow輸出數組讀取並保存到自己的陣列

查看圖像分類器示例的TensorFlowImageClassifier.java中的實現,瞭解如何將輸入傳遞給TensorFlow,運行推理,然後從TensorFlow提取輸出標籤。例如,在我們的圖像分類示例中,我們的應用可以在顯示狗的圖像時檢測哪些品種的狗。

樣本中的模型圖使用Google Inception V3 TensorFlow模型構建,訓練集包含來自ImageNet的120萬張圖像。如果您想構建自己的模型圖,請確保在分類器實施中相應地更新模型文件,標籤文件和輸入/輸出名稱。

總之方法概括上述使用TensorFlow的Android推理庫作爲gradle這個依賴提供了一種快速簡便的方法來TensorFlow核心功能添加到任何Android的項目,即使是複雜的項目,如the TensorFlow Android samples有原生代碼,需要NDK集成。這種方法還將主機平臺擴展到那些目前沒有像Windows那樣的完全Bazel支持的平臺。

+0

不知道爲什麼反對票。答案對話題有幫助。 – Hephaestus

相關問題