TensorFlow Lite: пакетирование с Mobilenet_V2 - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу сделать дозирование с Mobilenet_V2_1.0_224 в TensorFlow Lite.

Я попробовал этот ответ (https://stackoverflow.com/questions/52783747/how-to-do-batching-with-tensorflow-lite/53125376#53125376),, но это работает только для Inception_V4.

Когда я пытаюсь использовать размер пакета> 1 (в данном случае batch_size 2) для Mobilenet iполучить следующую ошибку:

  ComposedException 1 :
    java.lang.NullPointerException: Internal error: Cannot allocate memory for the interpreter: tensorflow/contrib/lite/kernels/reshape.cc:68 num_input_elements != num_output_elements (2002 != 1001)Node 64 failed to prepare.

    at org.tensorflow.lite.NativeInterpreterWrapper.allocateTensors(Native Method)
    at org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:118)
    at org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:168)
    at org.tensorflow.lite.Interpreter.run(Interpreter.java:145)

Редактировать: это код tflite, приводящий к этой ошибке:

    DIM_BATCH_SIZE = 4
    var tfliteOptions: Interpreter.Options = Interpreter.Options()
    tfliteOptions.setUseNNAPI(true)
    var interpreter = Interpreter(loadModelFile(assetManager, "mobilenet_v2_1.0_224.tflite")!!, tfliteOptions)    
    interpreter!!.resizeInput(0,intArrayOf(DIM_BATCH_SIZE,224,224,3))

    interpreter!!.run(imgData, labelProb)

imgData - это ByteBuffer, содержащий предварительно обработанные изображения, labelProb FloatArray для прогнозов.

...