【发布时间】:2021-05-30 17:53:32
【问题描述】:
我的 tflite 模型具有输入形状:(5,128,256,3) 并且有 3 个类。
*注意:第一个维度 5 不是批量大小。如果考虑批量大小,则为 (None, 5, 128, 256, 3)
所以现在要在 android 中测试我的模型,我想给它提供 5 张图像。
所以我首先创建了 ByteBuffer 并分配了足够的存储空间,然后将其转换为 FloatBuffer。
val imageBuffer = ByteBuffer.allocateDirect(5 * 256 * 128 * 3 * 4).order(ByteOrder.nativeOrder()).asFloatBuffer()
我已读取图像,完成所有必要的预处理并使用 FloatBuffer 的put 方法将其存储到imageBuffer。
现在尝试运行 interpreter.run(imageBuffer, output) 时出现如下所示的错误:
tensorflow/lite/kernels/unpack.cc:67 data->num != input_shape->data[axis] (5 != 128)
【问题讨论】:
-
很难重现/回答您的问题,因为模型信息存在限制。如果可能,请考虑创建最小且可重复的步骤作为 CoLab 的格式,以获得其他人的帮助。
-
@JaesungChung 基本上该模型接受五张图片而不是一张。恐怕它不能作为 colab 笔记本共享,因为这是我无法使其工作的 Android 问题。在 python 中,一切都按预期工作。
标签: android tensorflow tensorflow-lite