【问题标题】:TensorFlow lite and keras model integrationTensorFlow lite 和 keras 模型集成
【发布时间】:2018-08-10 06:35:33
【问题描述】:

我一直在尝试将我的 keras 模型 .tflite 文件放入 google 的 Tflitecamera 演示中。但是我遇到了分配错误(无法在 12288 字节的 TensorFlowLite 缓冲区和 1072812 字节的 ByteBuffer 之间转换。在)。 我认为这是因为错误的字节缓冲区分配。

ByteBuffer.allocate( DIM_BATCH_SIZE * getImageSizeX() * getImageSizeY() * DIM_PIXEL_SIZE * getNumBytesPerChannel());

任何人都可以对此有所了解。我是 TensorFlow 的新手。

下面是日志

08-10 11:56:28.905 28066-28066/android.example.com.tflitecamerademo E/MultiWindowProxy:getServiceInstance 失败! 08-10 11:56:35.675 28066-28092/android.example.com.tflitecamerademo E/AndroidRuntime: 致命异常: CameraBackground 进程:android.example.com.tflitecamerademo,PID:28066 java.lang.IllegalArgumentException:无法在 12288 字节的 TensorFlowLite 缓冲区和 1072812 字节的 ByteBuffer 之间进行转换。 在 org.tensorflow.lite.Tensor.throwExceptionIfTypeIsIncompatible(Tensor.java:175) 在 org.tensorflow.lite.Tensor.setTo(Tensor.java:65) 在 org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:126) 在 org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:168) 在 org.tensorflow.lite.Interpreter.run(Interpreter.java:145) 在 com.example.android.tflitecamerademo.ImageClassifierFloatInception.runInference(ImageClassifierFloatInception.java:103) 在 com.example.android.tflitecamerademo.ImageClassifier.classifyFrame(ImageClassifier.java:136) 在 com.example.android.tflitecamerademo.Camera2BasicFragment.classifyFrame(Camera2BasicFragment.java:702) 在 com.example.android.tflitecamerademo.Camera2BasicFragment.-wrap0(Camera2BasicFragment.java) 在 com.example.android.tflitecamerademo.Camera2BasicFragment$4.run(Camera2BasicFragment.java:597) 在 android.os.Handler.handleCallback(Handler.java:822) 在 android.os.Handler.dispatchMessage(Handler.java:104) 在 android.os.Looper.loop(Looper.java:207) 在 android.os.HandlerThread.run(HandlerThread.java:61)

【问题讨论】:

    标签: android-studio tensorflow keras tensorflow-lite


    【解决方案1】:

    您可以在以下链接中找到此错误的原因:

    https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/java/src/main/java/org/tensorflow/lite/Tensor.java

    正如您在第 170 到 181 行中看到的,如果输出缓冲区的容量不等于字节数,则会发生此错误。

    【讨论】:

    • 当我将它设置为 equal 时,我得到一个溢出错误。 keras tflite 文件的缓冲区大小公式是什么?
    • 此链接已损坏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    相关资源
    最近更新 更多