我正在使用的模型是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_map
和score_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)
由于quantization
中score_map
中的std参数不等于1,因此我也尝试将得分图乘以该因子,但未得到结果。
我尝试了许多版本的训练后量化,但均未成功。 根据{{3}}的回答,我认为不应该再进行任何转换,但是显然不需要负值。 我的问题是:这个量化模型的结果有意义吗?我想念什么吗?
我也尝试使用代表性的数据集生成器,但是Edge TPU的编译中止了。