【发布时间】:2019-12-07 13:19:54
【问题描述】:
我对使用 kotlin 的 tensorflow lite 应用程序非常陌生。我已经使用 mobilenet 模型获取了用于图像分类的示例 kotlin 代码,它工作正常,现在我正在尝试使用我自己的自定义图像分类器模型。 我正在使用输入形状为 32x32x3 的 VGG 架构并将其转换为 tflite,并且使用 tflite 解释器可以正常工作。 但是,当我在 kotlin 应用程序上尝试此操作时,我遇到了以下错误,并且由于 kotlin 中的 val 类型(自动类型转换),我发现很难将其转换为浮点数
fun recognizeImage(bitmap: Bitmap): List<Recognition> {
val scaledBitmap = Bitmap.createScaledBitmap(bitmap, inputSize, inputSize, false)
val byteBuffer = convertBitmapToByteBuffer(scaledBitmap)
val result = Array(1) { ByteArray(labelList.size) }
interpreter.run(byteBuffer, result)
return getSortedResult(result)
}
错误日志
E/异常:java.lang.IllegalArgumentException:无法在 FLOAT32 类型的 TensorFlowLite 张量和 [[B 类型的 Java 对象(与 TensorFlowLite 类型 UINT8 兼容)之间进行转换。
如何解决
【问题讨论】:
标签: tensorflow kotlin tensorflow-lite