训练后的量化TensorFlow Lite模型的输出

时间:2019-12-13 13:20:45

标签: python-3.x tensorflow tensorflow-lite google-coral

我正在使用的模型是EAST文本检测器。我试图量化模型,以便可以对其进行编译以在Coral Edge TPU上进行推断。我使用了以下命令:

toco \
  --graph_def_file=frozen_east_text_detection.pb \
  --output_file=tflite_model.tflite \
  --input_format=TENSORFLOW_GRAPHDEF --output_format=TFLITE \
  --inference_type=QUANTIZED_UINT8 \
  --input_shape="1,320, 320,3" \
  --input_array=input_images \
  --output_array='feature_fusion/concat_3','feature_fusion/Conv_7/Sigmoid' \
  --std_dev_values=1 --mean_values=0 \
  --default_ranges_min=0 \
  --default_ranges_max=255

Edge TPU的转换和编译成功。问题是转换后的模型产生的输出。我不明白如何将其转换为“正常”坐标。

该模型产生两个变量; geo_mapscore_map

[{'name': 'feature_fusion/concat_3', 'index': 42, 'shape': array([ 1, 80, 80,  5], dtype=int32), 'dtype': <class 'numpy.uint8'>, 'quantization': (1.0, 0)}, 
{'name': 'feature_fusion/Conv_7/Sigmoid', 'index': 23, 'shape': array([ 1, 80, 80,  1], dtype=int32), 'dtype': <class 'numpy.uint8'>, 'quantization': (0.00390625, 0)}]

模型产生的盒子类似

array([[-77.0837, 256.9999],
       [176.9139, 256.9999],
       [176.9139, 254.9997],
       [-77.0837, 254.9997]], dtype=float32)

由于quantizationscore_map中的std参数不等于1,因此我也尝试将得分图乘以该因子,但未得到结果。

我尝试了许多版本的训练后量化,但均未成功。 根据{{​​3}}的回答,我认为不应该再进行任何转换,但是显然不需要负值。 我的问题是:这个量化模型的结果有意义吗?我想念什么吗?

我也尝试使用代表性的数据集生成器,但是Edge TPU的编译中止了。

0 个答案:

没有答案