2017-02-28 86 views

回答

3

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

长答案:为了运行TensorFlow,您首先需要构建模型图并针对大型输入数据集运行训练。一旦完成,您就可以基于训练好的模型进行推理,做出明智的决策。训练的第一部分是资源饥饿和密集,通常事先完成,而推理部分相对较轻。它是已被移植到运行Android Things的设备上的推理部分。

下面总结了需要整合TensorFlow到你的Android事情项目时该怎么做:

  • 首先,添加TensorFlow Android的推理库文件到您的项目:Tensorflow-Android的推理-α-调试.aar

  • 接下来,添加一个依赖于你的应用程序的文件的build.gradle像这样: 编译(名称: 'Tensorflow-Android的推理-α-调试',分机: '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推理库作为gradle这个依赖提供了一种快速简便的方法来TensorFlow核心功能添加到任何Android的项目,即使是复杂的项目,如the TensorFlow Android samples有原生代码,需要NDK集成。这种方法还将主机平台扩展到那些目前没有像Windows那样的完全Bazel支持的平台。

+0

不知道为什么反对票。答案对话题有帮助。 – Hephaestus

相关问题