在Android平臺上使用Tensorflow

TensorFlow是google基于DistBelief進行研發的第二代人工智能學習系統,表達了高層次的機器學習計算,大幅簡化了第一代系統,并且具備更好的靈活性和可延展性。TensorFlow一大亮點是支持異構設備分布式計算,它能夠在各個平臺上自動運行模型,從手機、單個CPU / GPU到成百上千GPU卡組成的分布式系統。

配置Tensorflow其實很簡單,比較常用的系統是 Ubuntu(最好是14及以上)和OS(Mac用戶如果不想配虛擬機也可以)。

1.首先要安裝并配置jdk

Ubuntu下可以在終端輸入如下指令

$ sudo apt-get install software-properties-common

$ sudo add-apt-repository ppa:webupd8team/Java

$ sudo apt-get update

$ sudo apt-get install Oracle-java8-installer

安裝后配置一下環境變量即可(網上有很多教程,這里就不多說了)。

Mac的話同理,先下載,再配置環境變量。

最后,在終端里輸入 java -version,如果出來類似如下的提示,則說明配置成功。

Java version "1.8.0_112"

Java(TM) SE Runtime Environment (build 1.8.0_112-b16)

Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

2.安裝Bazel

Ubuntu在終端輸入以下指令

$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list

$ curl https://bazel.io/bazel-release.pub.gpg | sudo apt-key add -

$ sudo apt-get update && sudo apt-get install bazel

$ sudo apt-get upgrade bazel

Mac則參考這里 http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html

記得要用pip安裝,os自帶python2.7,只安裝bazel即可。

3.下載Tensorflow源碼

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

這里os和ubuntu都一樣

4.安裝SDK

Ubuntu下輸入以下指令

$ wget https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz

$ tar xvzf android-sdk_r24.4.1-linux.tgz?

Mac下輸入

$ wget https://dl.google.com/android/android-sdk_r24.4.1-macosx.zip

$ unzip android-sdk_r24.4.1-macosx.zip

不管哪一個下完以后都要記得更新哦,在終端進入sdk文件輸入

$ tools/android update sdk --no-ui?

5.安裝NDK

$ wget https://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip

$ unzip android-ndk-r12b-linux-x86_64.zip -d ~/tensorflow?

這個OS和Ubuntu都一樣的。

6.下載 tensorflow 的 model

$ cd ~/tensorflow

$ wget https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip

$ unzip inception5h.zip -d tensorflow/examples/android/assets/

7.修改 WORKSPACE

首先進入tensorflow文件中的WORKSPACE(vi和gedit都可以)

gedit WORKSPACE

如果你是mac沒有gedit可以用這個

vi ?WORKSPACE

將WORKSPACE的內容修改成如下樣子,記住一定要將SDK和NDK部分左邊的#給去掉。

android_sdk_repository(

name = "androidsdk",

api_level = 25,

build_tools_version = "25.0.2",

path = "/home/ross/Downloads/android-sdk-linux",

)

android_ndk_repository(

name="androidndk",

path="/home/ross/Downloads/android-ndk-r12b",

api_level=24)

api_level和build_tools_version在SDK文件的platforms和build-tools里可以看到

8.編譯demo

在tensorflow目錄下輸入如下指令

$ bazel build //tensorflow/examples/android:tensorflow_demo

如果出現以下結果則說明編譯成功

bazel-bin/tensorflow/examples/android/tensorflow_demo_deploy.jar

bazel-bin/tensorflow/examples/android/tensorflow_demo_unsigned.apk

bazel-bin/tensorflow/examples/android/tensorflow_demo.apk

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容