Tensorflow Lite:当我使用flatc制作.tflite时,AllocateTensors()出错

时间:2018-02-09 05:13:43

标签: tensorflow tensorflow-lite

我正在尝试使用x86_64 PC上的tensorflow-lite来测试我的模型。

我编写了一个c ++测试代码并成功解释了给定的mobilenet模型并执行了推理。 我想将模型中的某些操作更改为我的自定义操作。 在此之前,我检查了是否可以正确地将.tflite转换为json。 我所做的是使用flatc和tensorflow lite的架构(schema.fbs)将mobilenet.lite更改为mobilenet.json,并将mobilenet.json重新更改为mobilenet_new.lite。 但是,当我测试mobilenet_new.lite时,错误发生如下:tensorflow / contrib / lite / kernels / kernel_util.cc:35 std :: abs(input_product_scale - bias_scale)< = 1e-6 * std :: min(input_product_scale, bias_scale)不是真的。

当我将mobilenet_new.lite转换为mobilenet_new.json时,两个JSON文件是相同的,没有任何区别。为什么会发生这种错误?如果参数值相同,那怎么可能呢?

如果您对此有所了解,请给我帮助。

由于

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

当我调试这个问题时,它是平缓缓冲问题。 当make json文件时,flatbuffer将float更改为string。 因此,它变为具有精度6的定点值。这使得浮点值四舍五入。 所以,当我转换tflite - > json - > tflite,两个tflite文件之间有一些变化。