使用 TFLITE 量化 MobileFaceNet 失败
Quantize MobileFaceNet with TFLITE failed
我正在尝试找到 运行 AI 相机人脸识别的解决方案。并且发现 MobileFacenet (code from sirius-ai) 作为灯光模型很棒!
我成功转换为 F32 格式的 TFLITE,准确度很高。
但是,当我使用以下命令量化为 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_UINT8
This thread 帮助转换为TFLITE,但不谈论量化。
谁能提供一些建议?非常感谢!!
使用 tflite_convert
需要定义 --saved_model_dir
或 --keras_model_file
。使用 TF2.x 时,如果要从冻结图转换为量化的 tflite,则应使用 --enable_v1_converter
。
编辑:
你现在做的叫做“虚拟量化”,可以用来测试量化网络的推理时序。为了正确地量化网络,min/max层的信息应该用假的量化节点注入它。
请参阅 this gist for example codes on how to do it. This blog post 还有一些关于量化感知训练的信息。
我正在尝试找到 运行 AI 相机人脸识别的解决方案。并且发现 MobileFacenet (code from sirius-ai) 作为灯光模型很棒!
我成功转换为 F32 格式的 TFLITE,准确度很高。 但是,当我使用以下命令量化为 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_UINT8
This thread 帮助转换为TFLITE,但不谈论量化。 谁能提供一些建议?非常感谢!!
使用 tflite_convert
需要定义 --saved_model_dir
或 --keras_model_file
。使用 TF2.x 时,如果要从冻结图转换为量化的 tflite,则应使用 --enable_v1_converter
。
编辑:
你现在做的叫做“虚拟量化”,可以用来测试量化网络的推理时序。为了正确地量化网络,min/max层的信息应该用假的量化节点注入它。
请参阅 this gist for example codes on how to do it. This blog post 还有一些关于量化感知训练的信息。