Я хочу сделать дозирование с 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 для прогнозов.