Понижение точности при обнаружении объекта Tensorflow после квантования
Я выполняю точную настройку SSD Mobilenet v2 для настраиваемого набора данных. Я тонко настраиваю модель для шагов 50k, и тренировка, учитывающая квантование, запускается при числе шагов 48k.
graph_rewriter {
quantization {
delay: 48000
weight_bits: 8
activation_bits: 8
}
}
Я наблюдаю 95%+ обучение, проверка и тестирование MAP после обучения.
После квантования с помощью команд
python object_detection/export_tflite_ssd_graph.py
--pipeline_config_path=${CONFIG_FILE}
--trained_checkpoint_prefix=${CHECKPOINT_PATH}
--output_directory=${OUTPUT_DIR} --add_postprocessing_op=true
./bazel-bin/tensorflow/contrib/lite/toco/toco
--input_file=${OUTPUT_DIR}/tflite_graph.pb \
--output_file=${OUTPUT_DIR}/detect.tflite \
--input_format=TENSORFLOW_GRAPHDEF \
--output_format=TFLITE \
--inference_type=QUANTIZED_UINT8 \
--input_shapes="1,300,300,3" \
--input_arrays=normalized_input_image_tensor \
--output_arrays="TFLite_Detection_PostProcess","TFLite_Detection_PostProcess:1","TFLite_Detection_PostProcess:2","TFLite_Detection_PostProcess:3" \
--std_values=128.0 --mean_values=128.0 --allow_custom_ops --default_ranges_min=0 --default_ranges_max=6
Я протестировал сгенерированную модель dete.tflite, используя тот же набор тестов. Я вижу падение MAP примерно до 85%.
Ожидается ли падение числа карт? Как я могу улучшить MAP после квантования?