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