久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

機(jī)器學(xué)習(xí):如何在安卓上集成TensorFlow

 西北望msm66g9f 2017-04-29

授權(quán)轉(zhuǎn)自THU數(shù)據(jù)派

作者:Amit Shekhar

翻譯:梁傅淇  王軍福

校對:李君

原文鏈接:https://blog./android-tensorflow-machine-learning-example-ff0e9b2654cc#.aoq0izsg6


我們都知道,,谷歌有一個開源庫叫做TensorFlow,,可被用在安卓系統(tǒng)中實現(xiàn)機(jī)器學(xué)習(xí)。換言之,,TensorFlow是谷歌為機(jī)器智能提供的一個開源軟件庫,。

我在網(wǎng)絡(luò)上搜尋了很久,,都沒有找到在安卓上搭建TensorFlow的簡單的方法或?qū)嵗W屑?xì)查閱許多資料以后,,我終于可以搭建它了,。于是,我決定把我搭建的過程寫出來,,這樣其他人就不必再浪費(fèi)時間了,。

這篇文章是寫給那些熟悉機(jī)器學(xué)習(xí)并且知道怎樣為機(jī)器學(xué)習(xí)搭建模型的人的(在這個示例中我會使用一個預(yù)訓(xùn)練模型)。近期,,我會寫一系列關(guān)于機(jī)器學(xué)習(xí)的文章,,這樣每個人都能夠?qū)W到如何為機(jī)器學(xué)習(xí)搭建模型。


從搭建安卓上的機(jī)器學(xué)習(xí)模型過程講起

我們需要知道的幾個要點:

  • TensorFlow的核心是用C++編寫的,;

  • 為了在安卓上搭建TensorFlow,,我們需要用JNI(Java本地接口)來調(diào)用C++函數(shù),比如說loadModel,,getPredictions,,等等;

  • 我們會用到.so(shared object,,即共享對象)文件,,它是C++編譯文件;還會用到j(luò)ar文件,,它由能夠調(diào)用本地C++的Java API組成。之后,,我們就可以調(diào)用Java API輕松地把事情做好,;

  • 所以我們需要jar(Java API)和一個.so(C++編譯)文件;

  • 我們必須要有一個預(yù)訓(xùn)練模型文件和一個用于分類的標(biāo)簽文件,。

我們會做以下的目標(biāo)檢測:

編譯jar和.so文件

注意:--recurse-submodules對于提取子模塊(pull submodules)很重要,。

在這里(https://developer./ndk/downloads/older_releases.html#ndk-12b-downloads)下載NDK。

下載安卓SDK,,或者,,我們也可以從Android Studio SDK提供路徑。

安裝Bazel(https://bazel.build/versions/master/docs/install.html),。Bazel是TensorFlow的主要編譯系統(tǒng),。

現(xiàn)在,編輯工作空間(WORKSPACE),,我們可以在早先克隆的TesnsorFlow根路徑中找到工作空間(WORKSPACE)文件,。


我們的SDK和NDK路徑就跟下面一樣:

然后編譯生成.so文件:

將armeabi-v7a換成我們所需要的目標(biāo)架構(gòu)。

庫會被放置在:

編譯Java副本:

我們可以在這里找到JAR文件:

現(xiàn)在我們有了jar和.so文件,。你也可以從下面的工程中直接提取使用我已經(jīng)建立好的.so文件和jar,。

我已經(jīng)在這里(https://github.com/MindorksOpenSource/AndroidTensorFlowMachineLearningExample)創(chuàng)建了一個完整可運(yùn)行的示例應(yīng)用,。

但是,我們需要預(yù)訓(xùn)練模型和標(biāo)簽文件,。

在這個例子中,,我們會使用Google預(yù)訓(xùn)練模型,它實現(xiàn)了在一張給定的照片上做目標(biāo)檢測,。

解壓縮zip文件,,我們就會得到imagenet_comp_graph_label.strings.txt(目標(biāo)標(biāo)簽)以及tensorflow_inception_graph.pb(預(yù)訓(xùn)練模型)。

現(xiàn)在,,在Android Studio上創(chuàng)建安卓示例工程吧,。

將imagenet_comp_graph_label.strings.txt(目標(biāo)標(biāo)簽)以及tensorflow_inception_graph.pb放進(jìn)assets文件夾。

將libandroid_tensorflow_inference_java.jar放進(jìn)lib文件夾,,單擊右鍵,,添加庫。

在主目錄新建一個jniLibs文件夾并且將libtensorflow_inference.so放到j(luò)niLibs/armeabi-v7a文件夾中,。

現(xiàn)在,,我們就可以調(diào)用TensorFlow Java API了。

TensorFlow Java API通過TensorFlowInferenceInterface類開放了所有需要的方法,。

現(xiàn)在,,我們可以用模型路徑調(diào)用TensorFlow Java API并且加載它了。

然后,,我們可以輸入一張圖片來獲取預(yù)測結(jié)果,。

如果想要體會完整的流程,克隆這個項目(https://github.com/MindorksOpenSource/AndroidTensorFlowMachineLearningExample),,搭建并運(yùn)行它吧,。

如果你在搭建這個項目的過程中有任何問題的話,聯(lián)系我,,我會非常樂意幫助你,。

Happy Coding:)


讀者問答


Q:我很疑惑要怎么連接到‘so’庫?也沒有任何一行像’System.loadLibray’的代碼,?

A:System.loadLibrary已經(jīng)寫在TensorFlow jar中了,。

Q:所以這是一個C++應(yīng)用還是Java應(yīng)用啊,?你用的是什么語言,?

A:這是一個用Java語言編寫的安卓應(yīng)用,它通過Java本地接口(JNI: Java Native Interface)調(diào)用C++做預(yù)測(機(jī)器學(xué)習(xí)),。

掃碼報名Strata Data Conference大會

大數(shù)據(jù)文摘專享優(yōu)惠截至5月5日



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多