简体   繁体   English

在 Android 中调用 tflite model 时出现问题

[英]issue in invoking tflite model in Android

i am trying to use already trained model as tflite model in android but getting below error when executing the tflite model for the output:我正在尝试使用已经训练过的 model 作为 android 中的 tflite model,但是在为 output 执行 tflite model 时出现以下错误:

**A/libc: Fatal signal 8 (SIGFPE), code 1 (FPE_INTDIV), fault addr 0xb7bd4543 in tid 12009 (ing.tensorflow3), pid 12009 (ing.tensorflow3)**

below is the code:下面是代码:

//calling

bitmap = getBitmapFromAsset("aval1.png");
        imageViewInput.setImageBitmap(bitmap);
        
testFunctionInference(bitmap);


//method body
public void testFunctionInference(Bitmap strName){
        try {
          
            //____________________________________
            ImageProcessor imageProcessor =
                    new ImageProcessor.Builder()
                            .add(new ResizeOp(1, 1, ResizeOp.ResizeMethod.BILINEAR))
                            .build();

            Log.w("testFunc:","after image processor");
// Create a TensorImage object. This creates the tensor of the corresponding
// tensor type (uint8 in this case) that the TensorFlow Lite interpreter needs.
            TensorImage tensorImage = new TensorImage(DataType.FLOAT32);

// Analysis code for every frame
// Preprocess the image
            tensorImage.load(strName);
            Log.w("testFunc:","265 L no.");
            tensorImage = imageProcessor.process(tensorImage);



            Log.w("testFunc:","before inputBuffer0");

            // Creates inputs for reference.
            TensorBuffer inputFeature0 = TensorBuffer.createFixedSize(new int[]{1, 640*480*3}, DataType.FLOAT32);

            MappedByteBuffer tfliteModel
                    = FileUtil.loadMappedFile(this,"converted_model.tflite");
            Interpreter tflite = new Interpreter(tfliteModel);
            Object a=tensorImage.getBuffer();
            Log.w("testFunc:","278");
            tflite.run(tensorImage.getBuffer(), inputFeature0.getBuffer());



            
        } catch (IOException e) {
            // TODO Handle the exception
        }
    }

anyone please assist in getting this issue resolved.任何人请协助解决这个问题。

To get a detailed log, you can use debug version of nightly-SNAPSHOT.要获得详细的日志,您可以使用 nightly-SNAPSHOT 的调试版本。

https://www.tensorflow.org/lite/guide/android#use_the_tensorflow_lite_aar_from_mavencentral https://www.tensorflow.org/lite/guide/android#use_the_tensorflow_lite_aar_from_mavencentral

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly-debug-SNAPSHOT'
}

But maybe it's better to check if you provided inputs correctly since you used DataType.FLOAT32, your model should have inputs with float32.但也许最好检查一下你是否正确提供了输入,因为你使用了 DataType.FLOAT32,你的 model 应该有 float32 的输入。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM