- 编译libtensorflow_inference.so
- bazel build -c opt //tensorflow/contrib/android:libtensorflow_inference.so
- --crosstool_top=//external:android/crosstool --host_crosstool_top=
- @bazel_tools//tools/cpp:toolchain --cpu=armeabi-v7a
- 编译libandroid_tensorflow_inference_java.jar
- bazel build //tensorflow/contrib/android:android_tensorflow_inference_java
TensorFlow供给了Android开辟的示例框架,下面基于AlexNet模型的看花识名APP做一些响应源码的修改,并编译生成Android的安装包:
- 基于AlexNet模型,修改Inference的输入、输出的Tensor名称
- private static final String INPUT_NAME = "input";
- private static final String OUTPUT_NAME = "alexnet_v2/fc8/squeezed";
- 放置quantized_alexnet_v2_graph.pb和对应的labels.txt文件到assets目次下,并修改Android文件路径
- private static final String MODEL_FILE = "file:///android_asset/quantized_alexnet_v2_graph.pb";
- private static final String LABEL_FILE = "file:///android_asset/labels.txt";
- 编译生成安装包
- bazel build -c opt //tensorflow/examples/android:tensorflow_demo
- 拷贝tensorflow_demo.apk到手机上,并履行安装,太阳花辨认效不雅如下图所示:(点击放大年夜图像)

在Android体系中履行TensorFlow Inference操作,须要调用libandroid_tensorflow_inference_java.jar中的JNI接口,重要接口如下:
- 构建TensorFlow Inference对象,构建该对象时刻会加载TensorFlow动态链接库libtensorflow_inference.so到体系中;参数assetManager为android asset治理器;参数modelFilename为TensorFlow模型文件在android_asset中的路径。
- TensorFlowInferenceInterface inferenceInterface = new
- TensorFlowInferenceInterface(assetManager, modelFilename);
- 向TensorFlow图中加载输入数据,本App中输入数据为摄像头朝长进步到的图片;参数inputName为TensorFlow Inference中的输入数据Tensor的名称;参数floatValues为输入图片的像素数据,进行预处理后的浮点值;[1,inputSize,inputSize,3]为裁剪后图片的大年夜小,比如1张224*224*3的RGB图片。
- inferenceInterface.feed(inputName, floatValues, 1, inputSize, inputSize, 3);
- 履行模型推理; outputNames为TensorFlow Inference模型中要运算Tensor的名称,本APP中为分类的Logist值。
- inferenceInterface.fetch(outputName, outputs);
总结
本文基于看花识名APP,讲解了TensorFlow在Android智能终端中的应用技巧。起首回想了AlexNet模型构造,基于AlexNet的slim模型对Flowers数据进行练习;对练习后的CheckPoint数据,进行Freeze和Quantized处理,生成智能终端要用的Inference模型。然后介绍了TensorFlow Android应用开辟情况的构建,编译生成TensorFlow在Android上的动态链接库以及java开辟包;文┞仿最后介绍了Inference API的应用方法。
【编辑推荐】
- 云计算深度进修平台架构与实践的必经之路
- 安闲大年夜神经收集,测试比较TensorFlow、MXNet、CNTK、Theano四个框架
- 深度进修目标检测模型周全综述:Faster R-CNN、R-FCN和SSD
推荐阅读
【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦!对于我小我,我更爱好一种延续性的解释,微办事架构 ≈ 模块化开辟 + 分布式计算。不管微办事架构的定义怎么>>>详细阅读
本文标题:深度学习利器:TensorFlow在智能终端中的应用
地址:http://www.17bianji.com/lsqh/37558.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示