如何在Android中执行tensorflow模型的推理
我尝试使用Tensorflow Lite,但它有很多限制,它没有批处理规范化操作,即使使用简单的操作,它也会对使用Keras测试的相同数据产生非常奇怪的结果。这意味着对于keras来说一切都正常,对于tensorflow lite,结果是完全错误的。因此,我需要一些东西在Android上执行.pb文件。您可以使用如何在Android中执行tensorflow模型的推理,android,tensorflow,neural-network,tensorflow-lite,Android,Tensorflow,Neural Network,Tensorflow Lite,我尝试使用Tensorflow Lite,但它有很多限制,它没有批处理规范化操作,即使使用简单的操作,它也会对使用Keras测试的相同数据产生非常奇怪的结果。这意味着对于keras来说一切都正常,对于tensorflow lite,结果是完全错误的。因此,我需要一些东西在Android上执行.pb文件。您可以使用TensorFlowEnferenceInterface使用.pb文件进行预测。首先,将.pb文件放在应用程序的资产文件夹中 在build.gradle(模块:app)文件中,添加以下依
TensorFlowEnferenceInterface
使用.pb文件进行预测。首先,将.pb文件放在应用程序的资产文件夹中
实现“org.tensorflow:tensorflow android:1.11.0”
TensorFlowEnferenceInterface TensorFlowEnferenceInterface=新的TensorFlowEnferenceInterface(context.getAssets(),”file:///android_asset/model.pb") ;
tensorflow推断接口.feed(输入名称,输入,1,28,28)代码>其中INPUT\u NAME
是输入层的名称<代码>1,50
是输入维度tensorflow推断接口.run(新字符串[]{OUTPUT_NAME})代码>其中OUTPUT\u NAME
是输出层的名称
float[]输出=新的float[number_of_类];
TensorFlowEnferenceInterface.fetch(输出名称,输出)代码>
输出
是从模型中预测的浮点值
以下是完整的代码:
TensorFlowInferenceInterface tensorFlowInferenceInterface = new
TensorFlowInferenceInterface(context.getAssets() , "file:///android_asset/model.pb");
tensorFlowInferenceInterface.feed( INPUT_NAME , inputs , 1, 28, 28);
tensorFlowInferenceInterface.run( new String[]{ OUTPUT_NAME } );
float[] outputs = new float[ nuymber_of_classes ];
tensorFlowInferenceInterface.fetch( OUTPUT_NAME , outputs ) ;
您可以使用
TensorFlowEnferenceInterface
使用.pb文件进行预测。首先,将.pb文件放在应用程序的资产文件夹中
实现“org.tensorflow:tensorflow android:1.11.0”
TensorFlowEnferenceInterface TensorFlowEnferenceInterface=新的TensorFlowEnferenceInterface(context.getAssets(),”file:///android_asset/model.pb") ;
tensorflow推断接口.feed(输入名称,输入,1,28,28)代码>其中INPUT\u NAME
是输入层的名称<代码>1,50
是输入维度tensorflow推断接口.run(新字符串[]{OUTPUT_NAME})代码>其中OUTPUT\u NAME
是输出层的名称
float[]输出=新的float[number_of_类];
TensorFlowEnferenceInterface.fetch(输出名称,输出)代码>
输出
是从模型中预测的浮点值
以下是完整的代码:
TensorFlowInferenceInterface tensorFlowInferenceInterface = new
TensorFlowInferenceInterface(context.getAssets() , "file:///android_asset/model.pb");
tensorFlowInferenceInterface.feed( INPUT_NAME , inputs , 1, 28, 28);
tensorFlowInferenceInterface.run( new String[]{ OUTPUT_NAME } );
float[] outputs = new float[ nuymber_of_classes ];
tensorFlowInferenceInterface.fetch( OUTPUT_NAME , outputs ) ;