Android Tensorflow Lite解释器崩溃

时间:2018-04-12 02:25:27

标签: android tensorflow tensorflow-lite

我正在将TensorFlow Lite模型加载到我的Android应用程序中,但应用程序不断崩溃(没有打印出任何错误):

tflite = new Interpreter(loadModelFile(activity));

据我所知,从github上的tensorflow repo的一些问题来看,这是由于一个糟糕的tflite模型;实际上,如果我从存储库加载一个演示模型,它可以正常工作。

如何检查.tflite模型的正确性?我是从repo中用.pb转换的张量流模型文件toco创建的,这既没有错误也没有给出正反馈。张量流模型来自keras模型的转换。

1 个答案:

答案 0 :(得分:0)

您可以按以下方式使用它,[假设您的模型是资产文件夹中的文件]

try{
    tflite = new Interpreter(loadModelFile());
} catch (Exception ex){
    ex.printStackTrace();
}


private MappedByteBuffer loadModelFile() throws IOException {
    AssetFileDescriptor fileDescriptor = this.getAssets().openFd("modelname.tflite");
    FileInputStream inputStream = new FileInputStream(fileDescriptor.getFileDescriptor());
    FileChannel fileChannel = inputStream.getChannel();
    long startOffset = fileDescriptor.getStartOffset();
    long declaredLength = fileDescriptor.getDeclaredLength();
    return fileChannel.map(FileChannel.MapMode.READ_ONLY, startOffset, declaredLength);
}