我正在将TensorFlow Lite模型加载到我的Android应用程序中,但是该应用程序始终在以下位置崩溃(没有打印出任何错误):
tflite = new Interpreter(loadModelFile(activity));
[我的理解是,从github上的tensorflow回购中的一些问题来看,这是由于不良的tflite
模型所致;确实,如果我改为从存储库加载演示模型,则可以正常工作。
如何检查.tflite
模型的正确性?我是从张量流模型文件.pb
中创建该文件的,该文件由仓库中的toco
转换而成,既没有错误也没有积极的反馈。张量流模型来自于keras模型的转换。
您可以按如下方式使用它,[假设您的模型是资产文件夹中的文件]
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);
}