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
谢谢!
答案 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);
然后问题就解决了。