其他分享
首页 > 其他分享> > 如何在Android Things上运行TensorFlow推理,例如对图像进行分类?

如何在Android Things上运行TensorFlow推理,例如对图像进行分类?

作者:互联网

Android Things是否支持TensorFlow? TensorFlow Android示例能否移植到Android Things上运行?如果是这样,最简单的方法是什么?

解决方法:

简短的答案:是的,您确实可以在运行Android Things的嵌入式设备(例如Raspberry Pi 3)上运行TensorFlow.我们已经将TensorFlow图像分类应用程序移植到了Android Things.可用:https://github.com/androidthings/sample-tensorflow-imageclassifier.

长答案:要运行TensorFlow,您首先需要构建模型图并针对大型输入数据集进行训练.完成后,您可以根据经过训练的模型进行推理,以做出明智的决策.训练的第一部分是占用大量资源的资源,通常是事先完成的,而推理部分则相对较轻.这是推断部分,已移植为在运行Android Things的设备上运行.

以下总结了将TensorFlow集成到Android Things项目中时需要做的事情:

>首先,将TensorFlow Android推理库文件添加到您的项目中:Tensorflow-Android-Inference-alpha-debug.aar
>接下来,在应用的build.gradle文件中添加一个依赖项,如下所示:
compile(名称:’Tensorflow-Android-Inference-alpha-debug’,ext:’aar’)

要利用TensorFlow Android推理库,请实例化org.tensorflow.contrib.android.TensorFlowInferenceInterface实例,以公开以下方法:

> initializeTensorFlow:使用模型图作为输入来初始化TensorFlow对象
> fillNodeFloat:将输入数据复制到TensorFlow输入数组中
> runInference:运行推理并将结果保存在TensorFlow输出数组中
> readNodeFloat:从TensorFlow输出数组读取并保存到自己的数组中

在图像分类器样本的TensorFlowImageClassifier.java中检查实现,以了解如何将输入传递给TensorFlow,运行推理以及从TensorFlow中提取输出标签.例如,在我们的图像分类示例中,当显示狗的图像时,我们的应用程序可以检测出哪种狗.

样本中的模型图是使用Google Inception V3 TensorFlow模型构建的,其训练集包含来自ImageNet的120万幅图像.如果要构建自己的模型图,请确保在分类器实现中相应地更新模型文件,标签文件和输入/输出名称.

简而言之,上面概述的使用TensorFlow Android Inference库作为gradle依赖项概述的方法提供了一种快速简便的方法,可将TensorFlow核心功能添加到任何Android项目中,甚至包括具有本机代码且需要NDK集成的复杂项目(例如the TensorFlow Android samples).这种方法还可以将主机平台扩展到当前不完全支持Bazel的主机平台,例如Windows.

标签:raspberry-pi3,android-things,tensorflow,android
来源: https://codeday.me/bug/20191111/2021392.html