Android TensorFlow推论接口返回低值
我正在编写一个Android应用程序,它通过一个.pb文件使用一个Keras模型将一片叶子分类为健康或不健康。我使用TensorFlow与Android接口,特别是TensorFlowEnferenceInterface类。我的代码引用如下: feed(“conv2d_1_input”,input,1,WIDTH,HEIGHT,3); run(新字符串[]{“activation_7/Sigmoid”}); 获取(“激活_7/Sigmoid”,输出)Android TensorFlow推论接口返回低值,android,tensorflow,keras,Android,Tensorflow,Keras,我正在编写一个Android应用程序,它通过一个.pb文件使用一个Keras模型将一片叶子分类为健康或不健康。我使用TensorFlow与Android接口,特别是TensorFlowEnferenceInterface类。我的代码引用如下: feed(“conv2d_1_input”,input,1,WIDTH,HEIGHT,3); run(新字符串[]{“activation_7/Sigmoid”}); 获取(“激活_7/Sigmoid”,输出) 当我使用Keras从Jupyter笔记本运行
当我使用Keras从Jupyter笔记本运行.pb网络时,它会输出通常范围内的值(0到1)。但是,当我使用上面的代码和完全相同的图像文件运行它时,它从未给出超过0.1的值,这表示非常不健康的叶子。任何输入都会有帮助。根据您的问题,当您在培训后在jupyter笔记本上运行时,您会得到正确的输出,但当使用Tensorflow推理界面运行时,您会得到错误的结果 请参阅使用Tensorflow Mobile在Android中运行.pb,首先需要冻结所有变量(将图形中的所有可训练和不可训练变量转换为常量) 请参阅Tensorflow模块以冻结协议缓冲区(.pb) 在您冻结它们之后,您需要优化图形,通常图形将具有推理期间不需要的大部分操作,因此您需要通过优化图形来删除它们 请参见Tensorflow模块以优化协议缓冲区 最后在android中运行这个.pb
如果你做了所有这些步骤,请告诉我 我已经做了所有这些,但我仍然得到上述错误。好的,请张贴您的pbtxt。