Mac 系統(tǒng)上編譯 TensorFlow Android Demo

Document created by Anter on 2018-04-05


image.png

編譯準(zhǔn)備

1. 源碼準(zhǔn)備

【方式一】 從 GitHub:https://github.com/tensorflow/tensorflow 現(xiàn)在下載源碼:
$ git clone https://github.com/tensorflow/tensorflow.git
【方式二】在 GitHub 上切換到合適的穩(wěn)定分支玉转,接著下載當(dāng)前分支的 Zip 包,然后解壓便可他宛。

源碼下載方式.png

Tips: 兩種方式的差別就是以 Zip 包下載的只能是當(dāng)前分支內(nèi)容踢涌,不能夠自由地進(jìn)行分支的操作和管理号俐,但 Zip 包的下載方式會更加快速。

2. 環(huán)境準(zhǔn)備

路徑配置:安裝完畢后若是命令行執(zhí)行$ java -version后得到的是 1.8.x_xx可以不用配置jdk路徑了

image.png

如果不是1.8版本則需要配置用戶根目錄的.bash_profile,
image.png
以E(Edit)方式打開,在insert模式下巫玻,在文件的最后面添加以下內(nèi)容丛忆,然后wq方式保存退出,然后執(zhí)行$ source .bash_profile使得配置生效仍秤。
image.png

# JDK 1.7
export JAVA_7_HOME=`/usr/libexec/java_home -v 1.7`
# JDK 1.8
export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`
# JDK 9
export JAVA_9_HOME=`/usr/libexec/java_home -v 9`

# Default
export JAVA_HOME=$JAVA_8_HOME

# alias JDK
alias jdk9="export JAVA_HOME=$JAVA_9_HOME"
alias jdk7="export JAVA_HOME=$JAVA_7_HOME"
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"

查看jdk的安裝路徑 all /usr/libexec/java_home -V specify version /usr/libexec/java_home -v 1.7

image.png

Tips:
---jdk 1.9 use 9 but not 1.9
--- jdk 1.8 is recommended, otherwise some compile action might go wrong
--- After executing $ source .bash_profile , restart command linebash then you can use it

  • python
    安裝:Mac 系統(tǒng)自帶了一個(gè)Python熄诡,版本是2.7.10,在本次編譯過程中诗力,筆者使用的是系統(tǒng)自帶的Python版本編譯凰浮。若是需要安裝更多的Python版本可以使用以下方式進(jìn)行安裝:
    【方式一】訪問 https://www.python.org/downloads/ 選擇合適的版本進(jìn)行下載安裝
    【方式二】使用home brew下載:
    若是還沒有安裝home brew, https://brew.sh/ 則可以使用系統(tǒng)自帶的ruby
    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    brew 設(shè)置清華源:
$ cd "$(brew --repo)"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

$ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

$ brew update

然后使用 brew 指令安裝 python : $ brew install python 這里默認(rèn)安裝的是最新的穩(wěn)定版本,需要指定版本則在后面加上@xx.xx.xx, 檢查 brew 中包含的版本:brew search python

設(shè)置python的路徑:用戶的根目錄$ vim .bash_profile袜茧,再以E(Edit)的方式菜拓,在后面添加alias python="/usr/local/Cellar/python/3.6.5/bin/python3",這里說明一下,brew下載安裝的目錄是 /usr/local/Cellar/ ,在這個(gè)目錄中可以查看所有使用 brew 安裝的軟件/庫惫周,若是想追蹤系統(tǒng)Python的安裝目錄可以

image.png

  • ndk
    【方式一】官網(wǎng)下載地址:https://developer.android.com/ndk/downloads/revision_history.html 建議下載 Android NDK, Revision 12b (June 2016) 筆者踩坑了下了一個(gè)最新的版本尘惧,希望 tensorflow能夠早日解決高版本NDK兼容問題。
    image.png

    【方式二】國內(nèi)地址下載:http://www.androiddevtools.cn/ (很感謝網(wǎng)站服務(wù)者递递!為國內(nèi)的小伙伴提供了Android相關(guān)開發(fā)工具的下載)
    image.png

    【方式三】Android SDK manager中選擇NDK下載喷橙,這個(gè)似乎只能下載到最新的(PS. 筆者踩過這個(gè)坑,使用16.x.xxx在編譯中出現(xiàn)某些頭文件找不到的問題登舞,希望能夠早點(diǎn)兼容)
    image.png

Tips: NDK下載完畢之后贰逾,最好是將NDK解壓到與Android SDK對應(yīng)的NDK目錄下,方便管理菠秒。

image.png

  • Android SDK
    【方式一】Android Studio 中下載:
    Android Studio 下載地址:https://developer.android.com/studio/index.html疙剑, 或者baidu.com中搜索下載。下載完畢后打開軟件進(jìn)行下載(筆者下載了 API 23的版本)
    image.png
  • bazel
    安裝了 brew 后安裝bazel就很方便了践叠,直接執(zhí)行$ brew install bazel
    image.png

3. 開始編譯

  • 編輯WORDSPACE文件
    打開 $ git clone 下載的tensorflow目錄言缤,用文本編輯器編輯WORDSPACE文件

    image.png

    image.png

  • bazel 編譯源碼
    cdtensorflow目錄,執(zhí)行./configure來確認(rèn)你的編譯環(huán)境(可以一直enter回車就好禁灼,非必須設(shè)置某些項(xiàng)目)

    image.png

    確認(rèn)環(huán)境后使用bazel 執(zhí)行 $ bazel build //tensorflow/examples/android:tensorflow_demo 進(jìn)行編譯
    image.png

    整個(gè)編譯過程花費(fèi)了25分鐘左右管挟,比較漫長,而且CPU的占用率暴增到99% +弄捕,散熱風(fēng)扇似乎聲音很大僻孝!甚至讓都心疼了,這會兒可以洗個(gè)澡什么的守谓,來壓壓驚穿铆。筆者在第一次編譯的過程中碰到了很多的問題,大多是環(huán)境配置不正確的斋荞,所以也提醒大家荞雏,按照推薦的編譯環(huán)境搭建自己的編譯環(huán)境。稍后筆者整理編譯過程中的問題并作簡單解答譬猫。
    最后讯檐,放一張喜聞樂見的結(jié)果圖
    image.png

image.png
image.png
iamge_02.jpg

image_03.jpg
image_04.jpg
image_05.jpg
image_06.jpg

Errors:


更: 2018-04-11

后天海賊王更新!H痉别洪! _

簡單粗暴的Android Studio編譯方法!

筆者我在5號那天花了好多時(shí)間去搭建編譯環(huán)境和使用bazel編譯柳刮,今天嘗試使用Android Studio編譯tensorflow anddroid demo挖垛,發(fā)現(xiàn)so easy!

1. 下載源碼

git clone https://github.com/tensorflow/tensorflow.git

2. 下載 Android Studio

https://developer.android.com/studio/index.html
or
http://www.androiddevtools.cn/

image.png

3. 下載安裝 CMake, LLDB, NDK

image.png

4.修改gradle 腳本配置

如果設(shè)置為 none 則會下載 TensorFlow 打包好的 aar 包痒钝,不在本地使用bazel 進(jìn)行編譯了,當(dāng)然也有其他的選項(xiàng)痢毒,比如cmake

image.png

至于為啥改送矩,大致看圖:
image.png

所以,我們的項(xiàng)目需要集成tensorflow庫哪替,可以不需要自己下載編譯tensorflow庫栋荸,直接加到編譯依賴便可

暫時(shí)到這兒了,后面開發(fā)過程中有出現(xiàn)相關(guān)的問題后繼續(xù)更新(圖片沒有經(jīng)過統(tǒng)一尺寸處理凭舶,還請見諒晌块,找機(jī)會再統(tǒng)一處理)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市帅霜,隨后出現(xiàn)的幾起案子匆背,更是在濱河造成了極大的恐慌,老刑警劉巖身冀,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钝尸,死亡現(xiàn)場離奇詭異,居然都是意外死亡搂根,警方通過查閱死者的電腦和手機(jī)珍促,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剩愧,“玉大人踢星,你說我怎么就攤上這事∠断蹋” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵成洗,是天一觀的道長五督。 經(jīng)常有香客問我,道長瓶殃,這世上最難降的妖魔是什么充包? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮遥椿,結(jié)果婚禮上基矮,老公的妹妹穿的比我還像新娘。我一直安慰自己冠场,他們只是感情好家浇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碴裙,像睡著了一般钢悲。 火紅的嫁衣襯著肌膚如雪点额。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天莺琳,我揣著相機(jī)與錄音还棱,去河邊找鬼。 笑死惭等,一個(gè)胖子當(dāng)著我的面吹牛珍手,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播辞做,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼琳要,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凭豪?” 一聲冷哼從身側(cè)響起焙蹭,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嫂伞,沒想到半個(gè)月后孔厉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帖努,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年撰豺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拼余。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡污桦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匙监,到底是詐尸還是另有隱情凡橱,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布亭姥,位于F島的核電站稼钩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏达罗。R本人自食惡果不足惜坝撑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粮揉。 院中可真熱鬧巡李,春花似錦、人聲如沸扶认。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辐宾。三九已至阳谍,卻和暖如春蛀柴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背矫夯。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工鸽疾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人训貌。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓制肮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親递沪。 傳聞我的和親對象是個(gè)殘疾皇子豺鼻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容