成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

linkin / 3366人閱讀

摘要:我們都知道,谷歌有一個(gè)開源庫叫做,可被用在安卓系統(tǒng)中實(shí)現(xiàn)機(jī)器學(xué)習(xí)。近期,我會(huì)寫一系列關(guān)于機(jī)器學(xué)習(xí)的文章,這樣每個(gè)人都能夠?qū)W到如何為機(jī)器學(xué)習(xí)搭建模型?,F(xiàn)在,在上創(chuàng)建安卓示例工程吧。

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

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

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

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

我們需要知道的幾個(gè)要點(diǎn):

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

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

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

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

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

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

編譯jar和.so文件

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

在這里(https://developer.android.com/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)文件。

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

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

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

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

解壓縮zip文件,我們就會(huì)得到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文件夾,單擊右鍵,添加庫。

讀者問答

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

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

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

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

歡迎加入本站公開興趣群

商業(yè)智能與數(shù)據(jù)分析群

興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)

QQ群:81035754

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/4542.html

相關(guān)文章

  • TensorFlow-dev-summit:那些TensorFlow上好玩的和黑科技

    摘要:現(xiàn)場宣布全球領(lǐng)先的深度學(xué)習(xí)開源框架正式對外發(fā)布版本,并保證的本次發(fā)布版本的接口滿足生產(chǎn)環(huán)境穩(wěn)定性要求。有趣的應(yīng)用案例皮膚癌圖像分類皮膚癌在全世界范圍內(nèi)影響深遠(yuǎn),患病人數(shù)眾多,嚴(yán)重威脅身體機(jī)能。 前言本文屬于介紹性文章,其中會(huì)介紹許多TensorFlow的新feature和summit上介紹的一些有意思的案例,文章比較長,可能會(huì)花費(fèi)30分鐘到一個(gè)小時(shí)Google于2017年2月16日(北京時(shí)間...

    BLUE 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.22 - 進(jìn)擊的 Google I/O 2017

    摘要:谷歌表示,與搜索并列,是谷歌機(jī)器學(xué)習(xí)技術(shù)最重要的產(chǎn)品服務(wù)載體。谷歌宣布了基于機(jī)器學(xué)習(xí)技術(shù)的全面升級,很可能是其誕生以來的最大升級。在去年的大會(huì)上,谷歌宣布了其第一代。 showImg(https://segmentfault.com/img/bVNTKT?w=900&h=385); Google I/O Google I/O 是由 Google 舉行的網(wǎng)絡(luò)開發(fā)者年會(huì),討論的焦點(diǎn)是用 G...

    darkbaby123 評論0 收藏0
  • 分享 | 撞壞遙控車后,有個(gè)技術(shù)大牛爸爸是種怎樣的體驗(yàn)

    摘要:在我已經(jīng)制作完成一輛可以運(yùn)行的遙控車時(shí),公司發(fā)布了一個(gè)自駕車項(xiàng)目,來展示自動(dòng)駕駛汽車的工作原理。需要注意的是,這里用的都是語言而非,其主要原因有兩個(gè)一方面,近來似乎已成為運(yùn)用機(jī)器學(xué)習(xí)技術(shù)時(shí)實(shí)際使用的語言。 最近,Mapbox 的 Android 工程師 Antonio 使用計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)技術(shù),為他的女兒 Violeta 重新制作了一臺(tái)遙控車。接下來我們看看 Antonio 是如何...

    ConardLi 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<