我正在尝试找到一种在AI摄像头上运行人脸识别的解决方案。我发现MobileFacenet (code from sirius-ai)是一个很好的轻量级模型!
我成功地将TFLITE转换为F32格式,具有很好的准确性。但是,当我使用以下命令量化为uint8时失败:
tflite_convert --output_file tf-lite/MobileFacenet_uint8_128.tflite
--graph_def_file tf-lite/MobileFacenet.pb
--input_arrays "input"
--input_shapes "1,112,112,3"
--output_arrays output
--output_format TFLITE
--mean_values 128
--std_dev_values 127.5
--default_ranges_min 0
--default_ranges_max 255
--inference_type QUANTIZED_UINT8
--inference_input_type QUANTIZED_UINT8This thread有助于转换为TFLITE,但不讨论量化。有人能提供一些建议吗?非常感谢!
发布于 2020-07-09 18:26:05
使用tflite_convert需要定义--saved_model_dir或--keras_model_file。当使用TF2.x时,如果你想从冻结的图形转换成量化的tflite,你应该使用--enable_v1_converter。
编辑:
您当前所做的操作称为“虚拟量化”,它可用于测试量化网络的推理时序。为了正确量化网络,应该使用伪量化节点向网络注入层的最小/最大信息。
具体操作方法请参考this gist示例代码。This blog post也有一些关于量化感知训练的信息。
https://stackoverflow.com/questions/62804754
复制相似问题