android 调用 Tensorflow的模型出错了.错误日志
```kotlin
FATAL EXCEPTION: main
Process: com.vvfly.GsensorTest1, PID: 1790
java.lang.IllegalStateException: Internal error: Unexpected failure when preparing tensor allocations:
tensorflow/lite/kernels/expand_dims.cc:40 axis >= 0 was not true.
Node number 0 (EXPAND_DIMS) failed to prepare.
at org.tensorflow.lite.NativeInterpreterWrapper.allocateTensors(Native Method)
at org.tensorflow.lite.NativeInterpreterWrapper.allocateTensorsIfNeeded(NativeInterpreterWrapper.java:303)
at org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:243)
at org.tensorflow.lite.InterpreterImpl.runForMultipleInputsOutputs(InterpreterImpl.java:133)
at org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:80)
at org.tensorflow.lite.InterpreterImpl.run(InterpreterImpl.java:126)
at org.tensorflow.lite.Interpreter.run(Interpreter.java:80)
at com.example.nrfc.BreathAIProcess.setDate(BreathAIProcess.java:121)
at com.example.nrfc.MainActivity$14$3.run(MainActivity.java:837)
at android.app.Activity.runOnUiThread(Activity.java:7785)
at com.example.nrfc.MainActivity$14.onReceive(MainActivity.java:775)
at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:308)
at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46)
at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:118)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8501)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
加载模型的代码:
interpreter = new Interpreter(loadModelFile(mContext));
// 加载模型文件
private MappedByteBuffer loadModelFile(Context context) throws IOException {
AssetFileDescriptor fileDescriptor = context.getAssets().openFd("model1.26-0.50.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);
}
这是我使用tensorflow的版本
implementation 'org.tensorflow:tensorflow-lite:2.10.0'
// implementation 'org.tensorflow:tensorflow-lite:+'
implementation 'org.tensorflow:tensorflow-lite-select-tf-ops:2.10.0'