Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中执行tensorflow模型的推理_Android_Tensorflow_Neural Network_Tensorflow Lite - Fatal编程技术网

如何在Android中执行tensorflow模型的推理

如何在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)文件中,添加以下依

我尝试使用Tensorflow Lite,但它有很多限制,它没有批处理规范化操作,即使使用简单的操作,它也会对使用Keras测试的相同数据产生非常奇怪的结果。这意味着对于keras来说一切都正常,对于tensorflow lite,结果是完全错误的。因此,我需要一些东西在Android上执行.pb文件。

您可以使用
TensorFlowEnferenceInterface
使用.pb文件进行预测。首先,将.pb文件放在应用程序的资产文件夹中

  • 在build.gradle(模块:app)文件中,添加以下依赖项:,
    实现“org.tensorflow:tensorflow android:1.11.0”
  • 然后初始化TensorFlowEnferenceInterface,如果您的模型文件名为“model.pb”,那么,
    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文件放在应用程序的资产文件夹中

  • 在build.gradle(模块:app)文件中,添加以下依赖项:,
    实现“org.tensorflow:tensorflow android:1.11.0”
  • 然后初始化TensorFlowEnferenceInterface,如果您的模型文件名为“model.pb”,那么,
    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 ) ;