I'm trying to integrate an own model based on mobileNetV2 with the image size 224. The base is the google example
As mobileNet with the same image size is used also for "MobileNet", I reused the button and only changed the path to the custom assets in loadModel():
default:
/* res = await Tflite.loadModel(
model: "assets/ssd_mobilenet.tflite",
labels: "assets/ssd_mobilenet.txt");*/
res = await Tflite.loadModel(
model: "assets/model_flowers.tflite",
labels: "assets/labels_flowers.txt");
E/AndroidRuntime(28217): FATAL EXCEPTION: AsyncTask #2
E/AndroidRuntime(28217): Process: com.example.examplerealtime, PID: 28217
E/AndroidRuntime(28217): java.lang.RuntimeException: An error occurred while executing doInBackground()
E/AndroidRuntime(28217): at android.os.AsyncTask$3.done(AsyncTask.java:354)
E/AndroidRuntime(28217): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
E/AndroidRuntime(28217): at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
E/AndroidRuntime(28217): at java.util.concurrent.FutureTask.run(FutureTask.java:271)
E/AndroidRuntime(28217): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
E/AndroidRuntime(28217): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/AndroidRuntime(28217): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/AndroidRuntime(28217): at java.lang.Thread.run(Thread.java:764)
E/AndroidRuntime(28217): Caused by: java.lang.IllegalArgumentException: Cannot copy between a TensorFlowLite tensor with shape [1, 5] and a Java object with shape [1, 5, 4].
E/AndroidRuntime(28217): at org.tensorflow.lite.Tensor.throwIfShapeIsIncompatible(Tensor.java:291)
E/AndroidRuntime(28217): at org.tensorflow.lite.Tensor.throwIfDataIsIncompatible(Tensor.java:258)
E/AndroidRuntime(28217): at org.tensorflow.lite.Tensor.copyTo(Tensor.java:150)
E/AndroidRuntime(28217): at org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:183)
E/AndroidRuntime(28217): at org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:275)
E/AndroidRuntime(28217): at sq.flutter.tflite.TflitePlugin$RunSSDMobileNet.runTflite(TflitePlugin.java:622)
E/AndroidRuntime(28217): at sq.flutter.tflite.TflitePlugin$TfliteTask.doInBackground(TflitePlugin.java:419)
E/AndroidRuntime(28217): at sq.flutter.tflite.TflitePlugin$TfliteTask.doInBackground(TflitePlugin.java:393)
E/AndroidRuntime(28217): at android.os.AsyncTask$2.call(AsyncTask.java:333)
E/AndroidRuntime(28217): at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/AndroidRuntime(28217): ... 4 more
As far I understand it correctly, the tensor shape passed to the model doesn't correspond to the required tensor shape :
Cannot copy between a TensorFlowLite tensor with shape [1, 5] and a Java object with shape [1, 5, 4]