tensorflow在android平台的使用(pc端为ubuntu16.04)


 
 

一.安装bazel

第一步安装JDK8:

sudo apt-get install openjdk-8-jdk
第二步在包资源中增加bazel的发布源
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.build/bazel-release.pub.gpg | sudo apt-key add -
第三步安装和更新bazel
sudo apt-get update && sudo apt-get install bazel

sudo apt-get upgrade bazel
注:可能会因为网络问题出现包无法定位,记住不能忽略,直到安装成功为止(记得一直翻墙哦)

二.安装Android Studio

一.下载sdk

我的版本是24.4.1

配置环境

sudo gedit /etc/profile
export ANDROID_HOME=/opt/android-sdk-linux
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
source /etc/profile  //更新配置
android 之后下载tool26.0.2,和sdk26与25

 
 

 
 

二.下载ndk

我的版本r12b

三.下载ide

我的版本是3.0.1

cd /opt/android-studio/bin/ 打开as下的bin目录 
sudo ./studio.sh

重新配置sdk安装路径:configure –> project defaults –> project structure

三.安装tensorflow

下载源代码

git clone --recurse-submodules https://github.com/tensorflow/tensorflow

下载tensorflow1.4.1-cp35-cp35-manylinux...这这个版本

sudo pip3 install --upgrade tensorflow-1.4.1-cp35-cp35m-manylinux1_x86_64.whl
.编译retrain顿号optimize_for_inference、label_image 

先使用python3.5来安装

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
进入tensorflow目录   注释:这步我也没成功所以直接使用window上进行训练
bazel build -c opt --copt=-mavx tensorflow/examples/image_retraining:retrain
bazel build tensorflow/python/tools:optimize_for_inference
bazel build tensorflow/examples/label_image:label_image     

下面需要将python3.5转换为2.7

 
 
sudo mv /usr/bin/python /usr/bin/python_backup
sudo ln -s /usr/bin/python2.7 /usr/bin/python


之后进行模型优化,我的模型是window下训练好的拿过来优化的
bazel-bin/tensorflow/python/tools/optimize_for_inference \
--input=retrained_graph.pb \                                         //这个是你电脑输出的图的存放地址
--output=optimized_graph.pb \
--input_names=Mul \
--output_names=final_result

bazel-bin/tensorflow/examples/label_image/label_image \       //这步只是测试
--output_layer=final_result \
--labels=retrained_labels.txt \
--image=1.jpg \
--graph=optimized_graph.pb \
--input_layer=Mul

 
 

其中-c opt --copt=-mavx先别加,看情况加copt= (需要的环境)出错http://ask.csdn.net/questions/676227什么的会有提示的,这个是我提问的就是这个问题 
 

至于少了什么包,那就下载更新呗

如果用了python2.7会遇到undefined symbol: _ZN6google8protobuf8internal26fixed_address_empty_stringB5cxx11E

五.写安卓的程序

还没开始写,下次在继续

 
 
 
 
 
 
 
 
 

猜你喜欢

转载自blog.csdn.net/qq_35570735/article/details/78882845
今日推荐