Системная информация
Написал ли я собственный код (в отличие от сценария со стандартным примером, предоставленным в TensorFlow): да
Платформа ОС и распространение (например, Linux Ubuntu 16.04): Mac OS Mojave
Мобильное устройство (например, iPhone 8, Pixel 2, Samsung Galaxy), если проблема возникает на мобильном устройстве: нет данных
TensorFlow установлен из (источника или двоичного файла): двоичный
Версия TensorFlow (используйте команду ниже): 1.12
Версия Python: 3.6.4
Базельская версия (если компилируется из исходного кода): N / A
Версия GCC / Compiler (если компилируется из исходного кода): N / A
Версия CUDA / cuDNN: N / A
Модель и память графического процессора: N / A
Опишите текущее поведение
java.lang.IllegalStateException: Internal error: Unexpected failure when preparing tensor allocations: tensorflow/contrib/lite/kernels/depthwise_conv.cc:92 NumDimensions(input) != 4 (0 != 4)Node number 0 (DEPTHWISE_CONV_2D) failed to prepare.
Я строю модель с:
interpreter = Interpreter(loadModelFile("model.tflite"), object: Interpreter.Options() {
override fun setAllowFp16PrecisionForFp32(allow: Boolean): Interpreter.Options {
return super.setAllowFp16PrecisionForFp32(true)
}
override fun setUseNNAPI(useNNAPI: Boolean): Interpreter.Options {
return super.setUseNNAPI(true)
}
})
и вызовите его с помощью:
imgData = ByteBuffer.allocateDirect(4 * 100 * 100).apply { order(nativeOrder()) }.asFloatBuffer()
labelProbArray = IntArray(1)
interpreter.run(imgData, labelProbArray as Any)
Опишите ожидаемое поведение
Ожидаемое поведение состоит в том, что байтовый буфер будет преобразован в тензоры с плавающей точкой32 под капотом согласно заполнителю op.