是否有可能在tensorflow移动android上提供标量值?

时间:2017-12-16 01:21:26

标签: tensorflow

Android Tensorflow Mobile Java Inference API不支持将标量值提供给图表。 因此,如果我尝试将标量值提供给以下内容,则会出现错误形状的错误。

    boolean[] phaseTrain = {false};
    inferenceInterface.feed("phase_train:0", phaseTrain, 1);
    --->
Caused by: java.lang.IllegalArgumentException: The second input must be a scalar, but it has shape [1]

所以我想知道是否有任何方法可以在Android Tensorflow Mobile上为图表提供标量值。 或者我应该修改图表不使用标量值吗?

实际上我正在尝试制作一个使用facenet模型的Android应用程序 https://drive.google.com/file/d/0B5MzpY9kBtDVZ2RpVDYwWmxoSUk/edit

谢谢!

3 个答案:

答案 0 :(得分:1)

我通过在

中添加以下代码来修复此问题
~/tensorflow/contrib/android/java/org/tensorflow/contrib/android/TensorFlowInferenceInterface.java

+  public void feed(String inputName, boolean src) {
+                 this.addFeed(inputName, Tensor.create(Boolean.valueOf(src), Boolean.class));
+  }

感谢您的审核!

答案 1 :(得分:0)

使用Tensorflow 1.12,您可以通过以下方式做到这一点:

boolean[] phaseTrain = {false};
long[] phaseTrainShape = {};
inferenceInterface.feed("phase_train:0", phaseTrain, phaseTrainShape);

答案 2 :(得分:-1)

请删除1,如下:

inferenceInterface.feed("phase_train:0", phaseTrain);

然后问题就解决了。