Tensorflow Android演示:如何加载自定义图形?

5

Tensorflow Android demo提供了一个不错的基础,用于构建使用TensorFlow图形的Android应用程序,但我一直困在如何将其重新用于不执行图像分类的应用程序上。目前,它从.pb文件中加载Inception图,并使用该图进行推理(代码也是如此假定的),但我想做的是加载自己的图形(来自.pb文件)并对如何处理图形的输入/输出进行自定义实现。

这个问题中的图表来自Udacity深度学习课程Assignment 6,是使用LSTM生成文本的RNN。(我已经将它冻结成了.pb文件。)然而,Android演示的代码基于它们正在处理图像分类器的假设。目前,我已经确定需要更改传递给tensorflow.initializeTensorflow(在TensorFlowImageListener中调用)的参数值,但其中几个参数表示图像输入的属性(例如IMAGE_SIZE),而我要加载的图形并没有这些属性。这是否意味着我必须更改本地代码?更一般地说,我应该如何解决这个问题?

有找到任何解决方案吗? - Flame of udun
2个回答

0

查看 TensorFlow Serving,了解一种通用的加载和提供 TensorFlow 模型的方式。


0

好消息:最近在Android应用程序中嵌入预先训练的TensorFlow模型变得更加容易了。请点击以下链接查看我的博客文章:
https://medium.com/@daj/using-a-pre-trained-tensorflow-model-on-android-e747831a3d6 (第一部分) https://medium.com/@daj/using-a-pre-trained-tensorflow-model-on-android-part-2-153ebdd4c465 (第二部分)

我的博客文章详细介绍了更多内容,但总之,您只需要:

  1. 在build.gradle文件中包含编译依赖项org.tensorflow:tensorflow-android:+
  2. 使用Java TensorFlowInferenceInterface类与您的模型进行接口交互(无需修改任何本地代码)。
TensorFlow Android演示应用程序已更新为使用这种新方法。请参见 TensorFlowImageClassifier.recognizeImage,了解它使用TensorFlowInferenceInterface的位置。
您仍需要指定一些配置,如图中输入和输出节点的名称以及输入的大小,但您应该能够通过使用TensorBoard或检查训练脚本来找出这些信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接