java.lang.IllegalArgumentException:无法在具有形状的 TensorFlowLite 张量之间复制

java.lang.IllegalArgumentException: Cannot copy between a TensorFlowLite tensor with shape

我最近几天一直在尝试这个。我已经从 here 下载了一个样本。我已经替换了模型 Detect.tflite 和标签文件并放了我自己的,但最终出现了几个错误,如下所示:

java.lang.IllegalArgumentException: Cannot convert between a TensorFlowLite buffer with 1080000 bytes and a ByteBuffer with 270000 bytes.

还有这个:

java.lang.IllegalArgumentException: Cannot copy between a TensorFlowLite tensor with shape [1, 1917, 4] and a Java object with shape [1, 10,4].

请帮忙。

问题是模型的输入张量与我们在代码中提到的数组不匹配(Android)。

改变输入张量就可以了,模型在这种情况下运行良好。

输入张量形状数组从 python 侧更改为 [1, 10,4]。

在我的例子中,我使用可教学的机器生成我的 .tflite 文件,当你需要安装它时,你会有很多选择,比如: Floating pointQuantizedEdgeTPU.

而且浮点数是唯一一种不会引起上述问题的方法。